diff options
Diffstat (limited to 'clang/lib/AST/StmtProfile.cpp')
-rw-r--r-- | clang/lib/AST/StmtProfile.cpp | 81 |
1 files changed, 79 insertions, 2 deletions
diff --git a/clang/lib/AST/StmtProfile.cpp b/clang/lib/AST/StmtProfile.cpp index de9de6ff463c..ed000c2467fa 100644 --- a/clang/lib/AST/StmtProfile.cpp +++ b/clang/lib/AST/StmtProfile.cpp @@ -462,6 +462,19 @@ void OMPClauseProfiler::VisitOMPSimdlenClause(const OMPSimdlenClause *C) { Profiler->VisitStmt(C->getSimdlen()); } +void OMPClauseProfiler::VisitOMPSizesClause(const OMPSizesClause *C) { + for (auto E : C->getSizesRefs()) + if (E) + Profiler->VisitExpr(E); +} + +void OMPClauseProfiler::VisitOMPFullClause(const OMPFullClause *C) {} + +void OMPClauseProfiler::VisitOMPPartialClause(const OMPPartialClause *C) { + if (const Expr *Factor = C->getFactor()) + Profiler->VisitExpr(Factor); +} + void OMPClauseProfiler::VisitOMPAllocatorClause(const OMPAllocatorClause *C) { if (C->getAllocator()) Profiler->VisitStmt(C->getAllocator()); @@ -477,6 +490,18 @@ void OMPClauseProfiler::VisitOMPDetachClause(const OMPDetachClause *C) { Profiler->VisitStmt(Evt); } +void OMPClauseProfiler::VisitOMPNovariantsClause(const OMPNovariantsClause *C) { + VistOMPClauseWithPreInit(C); + if (C->getCondition()) + Profiler->VisitStmt(C->getCondition()); +} + +void OMPClauseProfiler::VisitOMPNocontextClause(const OMPNocontextClause *C) { + VistOMPClauseWithPreInit(C); + if (C->getCondition()) + Profiler->VisitStmt(C->getCondition()); +} + void OMPClauseProfiler::VisitOMPDefaultClause(const OMPDefaultClause *C) { } void OMPClauseProfiler::VisitOMPProcBindClause(const OMPProcBindClause *C) { } @@ -537,7 +562,25 @@ void OMPClauseProfiler::VisitOMPSIMDClause(const OMPSIMDClause *) {} void OMPClauseProfiler::VisitOMPNogroupClause(const OMPNogroupClause *) {} -void OMPClauseProfiler::VisitOMPDestroyClause(const OMPDestroyClause *) {} +void OMPClauseProfiler::VisitOMPInitClause(const OMPInitClause *C) { + VisitOMPClauseList(C); +} + +void OMPClauseProfiler::VisitOMPUseClause(const OMPUseClause *C) { + if (C->getInteropVar()) + Profiler->VisitStmt(C->getInteropVar()); +} + +void OMPClauseProfiler::VisitOMPDestroyClause(const OMPDestroyClause *C) { + if (C->getInteropVar()) + Profiler->VisitStmt(C->getInteropVar()); +} + +void OMPClauseProfiler::VisitOMPFilterClause(const OMPFilterClause *C) { + VistOMPClauseWithPreInit(C); + if (C->getThreadID()) + Profiler->VisitStmt(C->getThreadID()); +} template<typename T> void OMPClauseProfiler::VisitOMPClauseList(T *Node) { @@ -848,10 +891,18 @@ StmtProfiler::VisitOMPExecutableDirective(const OMPExecutableDirective *S) { P.Visit(*I); } -void StmtProfiler::VisitOMPLoopDirective(const OMPLoopDirective *S) { +void StmtProfiler::VisitOMPCanonicalLoop(const OMPCanonicalLoop *L) { + VisitStmt(L); +} + +void StmtProfiler::VisitOMPLoopBasedDirective(const OMPLoopBasedDirective *S) { VisitOMPExecutableDirective(S); } +void StmtProfiler::VisitOMPLoopDirective(const OMPLoopDirective *S) { + VisitOMPLoopBasedDirective(S); +} + void StmtProfiler::VisitOMPParallelDirective(const OMPParallelDirective *S) { VisitOMPExecutableDirective(S); } @@ -860,6 +911,14 @@ void StmtProfiler::VisitOMPSimdDirective(const OMPSimdDirective *S) { VisitOMPLoopDirective(S); } +void StmtProfiler::VisitOMPTileDirective(const OMPTileDirective *S) { + VisitOMPLoopBasedDirective(S); +} + +void StmtProfiler::VisitOMPUnrollDirective(const OMPUnrollDirective *S) { + VisitOMPLoopBasedDirective(S); +} + void StmtProfiler::VisitOMPForDirective(const OMPForDirective *S) { VisitOMPLoopDirective(S); } @@ -1110,6 +1169,18 @@ void StmtProfiler::VisitOMPTargetTeamsDistributeSimdDirective( VisitOMPLoopDirective(S); } +void StmtProfiler::VisitOMPInteropDirective(const OMPInteropDirective *S) { + VisitOMPExecutableDirective(S); +} + +void StmtProfiler::VisitOMPDispatchDirective(const OMPDispatchDirective *S) { + VisitOMPExecutableDirective(S); +} + +void StmtProfiler::VisitOMPMaskedDirective(const OMPMaskedDirective *S) { + VisitOMPExecutableDirective(S); +} + void StmtProfiler::VisitExpr(const Expr *S) { VisitStmt(S); } @@ -1130,6 +1201,12 @@ void StmtProfiler::VisitDeclRefExpr(const DeclRefExpr *S) { } } +void StmtProfiler::VisitSYCLUniqueStableNameExpr( + const SYCLUniqueStableNameExpr *S) { + VisitExpr(S); + VisitType(S->getTypeSourceInfo()->getType()); +} + void StmtProfiler::VisitPredefinedExpr(const PredefinedExpr *S) { VisitExpr(S); ID.AddInteger(S->getIdentKind()); |