Lines Matching defs:AStmt

3563                                                   Stmt *AStmt,
3566 if (!AStmt)
3570 AStmt);
5591 StmtResult SemaOpenMP::ActOnOpenMPCanonicalLoop(Stmt *AStmt) {
5598 if (auto *For = dyn_cast<ForStmt>(AStmt)) {
5615 } else if (auto *RangeFor = dyn_cast<CXXForRangeStmt>(AStmt)) {
5734 SemaRef, LVTy, LogicalTy, CounterRef, Step, isa<CXXForRangeStmt>(AStmt));
5738 return OMPCanonicalLoop::create(getASTContext(), AStmt, DistanceFunc,
5742 StmtResult SemaOpenMP::ActOnOpenMPLoopnest(Stmt *AStmt) {
5744 if (isa<ForStmt>(AStmt) || isa<CXXForRangeStmt>(AStmt))
5745 return ActOnOpenMPCanonicalLoop(AStmt);
5748 OMPExecutableDirective *LoopTransform = cast<OMPExecutableDirective>(AStmt);
5962 static bool teamsLoopCanBeParallelFor(Stmt *AStmt, Sema &SemaRef) {
5964 Checker.Visit(AStmt);
5971 Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc) {
6038 if (AStmt && !SemaRef.CurContext->isDependentContext() &&
6040 assert(isa<CapturedStmt>(AStmt) && "Captured statement expected");
6043 DSAAttrChecker DSAChecker(DSAStack, SemaRef, cast<CapturedStmt>(AStmt));
6045 Stmt *S = AStmt;
6052 auto *CS = cast<CapturedStmt>(AStmt);
6175 Res = ActOnOpenMPParallelDirective(ClausesWithImplicit, AStmt, StartLoc,
6179 Res = ActOnOpenMPSimdDirective(ClausesWithImplicit, AStmt, StartLoc, EndLoc,
6184 ActOnOpenMPTileDirective(ClausesWithImplicit, AStmt, StartLoc, EndLoc);
6187 Res = ActOnOpenMPUnrollDirective(ClausesWithImplicit, AStmt, StartLoc,
6193 Res = ActOnOpenMPReverseDirective(AStmt, StartLoc, EndLoc);
6196 Res = ActOnOpenMPInterchangeDirective(ClausesWithImplicit, AStmt, StartLoc,
6200 Res = ActOnOpenMPForDirective(ClausesWithImplicit, AStmt, StartLoc, EndLoc,
6204 Res = ActOnOpenMPForSimdDirective(ClausesWithImplicit, AStmt, StartLoc,
6208 Res = ActOnOpenMPSectionsDirective(ClausesWithImplicit, AStmt, StartLoc,
6214 Res = ActOnOpenMPSectionDirective(AStmt, StartLoc, EndLoc);
6217 Res = ActOnOpenMPSingleDirective(ClausesWithImplicit, AStmt, StartLoc,
6223 Res = ActOnOpenMPMasterDirective(AStmt, StartLoc, EndLoc);
6226 Res = ActOnOpenMPMaskedDirective(ClausesWithImplicit, AStmt, StartLoc,
6230 Res = ActOnOpenMPCriticalDirective(DirName, ClausesWithImplicit, AStmt,
6234 Res = ActOnOpenMPParallelForDirective(ClausesWithImplicit, AStmt, StartLoc,
6239 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6243 ActOnOpenMPScopeDirective(ClausesWithImplicit, AStmt, StartLoc, EndLoc);
6246 Res = ActOnOpenMPParallelMasterDirective(ClausesWithImplicit, AStmt,
6250 Res = ActOnOpenMPParallelMaskedDirective(ClausesWithImplicit, AStmt,
6254 Res = ActOnOpenMPParallelSectionsDirective(ClausesWithImplicit, AStmt,
6259 ActOnOpenMPTaskDirective(ClausesWithImplicit, AStmt, StartLoc, EndLoc);
6264 assert(AStmt == nullptr &&
6269 assert(AStmt == nullptr &&
6276 assert(AStmt == nullptr &&
6281 assert(AStmt == nullptr &&
6286 Res = ActOnOpenMPTaskgroupDirective(ClausesWithImplicit, AStmt, StartLoc,
6290 assert(AStmt == nullptr &&
6295 assert(AStmt == nullptr &&
6300 assert(AStmt == nullptr &&
6305 Res = ActOnOpenMPOrderedDirective(ClausesWithImplicit, AStmt, StartLoc,
6309 Res = ActOnOpenMPAtomicDirective(ClausesWithImplicit, AStmt, StartLoc,
6314 ActOnOpenMPTeamsDirective(ClausesWithImplicit, AStmt, StartLoc, EndLoc);
6317 Res = ActOnOpenMPTargetDirective(ClausesWithImplicit, AStmt, StartLoc,
6321 Res = ActOnOpenMPTargetParallelDirective(ClausesWithImplicit, AStmt,
6326 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6331 assert(AStmt == nullptr && "No associated statement allowed for 'omp "
6336 assert(AStmt == nullptr &&
6342 Res = ActOnOpenMPTargetDataDirective(ClausesWithImplicit, AStmt, StartLoc,
6347 EndLoc, AStmt);
6351 EndLoc, AStmt);
6354 Res = ActOnOpenMPTaskLoopDirective(ClausesWithImplicit, AStmt, StartLoc,
6358 Res = ActOnOpenMPTaskLoopSimdDirective(ClausesWithImplicit, AStmt, StartLoc,
6363 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6367 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6371 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6375 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6379 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6383 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6387 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6391 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6394 Res = ActOnOpenMPDistributeDirective(ClausesWithImplicit, AStmt, StartLoc,
6399 EndLoc, AStmt);
6403 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6407 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6411 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6415 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6418 Res = ActOnOpenMPTargetSimdDirective(ClausesWithImplicit, AStmt, StartLoc,
6423 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6427 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6431 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6435 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6438 Res = ActOnOpenMPTargetTeamsDirective(ClausesWithImplicit, AStmt, StartLoc,
6443 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6447 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6451 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6455 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6458 assert(AStmt == nullptr &&
6463 Res = ActOnOpenMPDispatchDirective(ClausesWithImplicit, AStmt, StartLoc,
6467 Res = ActOnOpenMPGenericLoopDirective(ClausesWithImplicit, AStmt, StartLoc,
6472 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6476 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6480 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6484 ClausesWithImplicit, AStmt, StartLoc, EndLoc, VarsWithInheritedDSA);
6926 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
6935 Res = ActOnOpenMPAssumeDirective(Clauses, AStmt, StartLoc, EndLoc);
7594 setBranchProtectedScope(Sema &SemaRef, OpenMPDirectiveKind DKind, Stmt *AStmt) {
7595 auto *CS = dyn_cast<CapturedStmt>(AStmt);
7620 Stmt *AStmt, SourceLocation StartLoc,
7622 if (!AStmt)
7625 setBranchProtectedScope(SemaRef, OMPD_parallel, AStmt);
7628 getASTContext(), StartLoc, EndLoc, Clauses, AStmt,
9616 Expr *OrderedLoopCountExpr, Stmt *AStmt, Sema &SemaRef,
9633 FVDF.TraverseStmt(AStmt);
9667 AStmt->IgnoreContainers(!isOpenMPLoopTransformationDirective(DKind)),
9932 const CapturedDecl *CD = cast<CapturedStmt>(AStmt)->getCapturedDecl();
9990 SourceLocation CondLoc = AStmt->getBeginLoc();
10036 SourceLocation IncLoc = AStmt->getBeginLoc();
10109 SourceLocation DistIncLoc = AStmt->getBeginLoc();
10128 SourceLocation DistEUBLoc = AStmt->getBeginLoc();
10380 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
10382 if (!AStmt)
10385 CapturedStmt *CS = setBranchProtectedScope(SemaRef, OMPD_simd, AStmt);
10387 assert(isa<CapturedStmt>(AStmt) && "Captured statement expected");
10404 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
10409 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
10411 if (!AStmt)
10414 assert(isa<CapturedStmt>(AStmt) && "Captured statement expected");
10420 AStmt, SemaRef, *DSAStack, VarsWithImplicitDSA, B);
10428 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B,
10434 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
10436 if (!AStmt)
10439 CapturedStmt *CS = setBranchProtectedScope(SemaRef, OMPD_for_simd, AStmt);
10441 assert(isa<CapturedStmt>(AStmt) && "Captured statement expected");
10459 NestedLoopCount, Clauses, AStmt, B);
10463 Stmt *AStmt, DSAStackTy *Stack) {
10464 if (!AStmt)
10467 assert(isa<CapturedStmt>(AStmt) && "Captured statement expected");
10468 auto BaseStmt = AStmt;
10489 SemaRef.Diag(AStmt->getBeginLoc(), diag::err_omp_sections_not_compound_stmt)
10498 Stmt *AStmt, SourceLocation StartLoc,
10500 if (checkSectionsDirective(SemaRef, OMPD_sections, AStmt, DSAStack))
10506 getASTContext(), StartLoc, EndLoc, Clauses, AStmt,
10510 StmtResult SemaOpenMP::ActOnOpenMPSectionDirective(Stmt *AStmt,
10513 if (!AStmt)
10519 return OMPSectionDirective::Create(getASTContext(), StartLoc, EndLoc, AStmt,
10533 Stmt *AStmt, SourceLocation StartLoc,
10535 if (!AStmt)
10538 Stmt *S = cast<CapturedStmt>(AStmt)->getCapturedStmt();
10578 Clauses, AStmt, TargetCallLoc);
10607 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
10609 if (!AStmt)
10618 setBranchProtectedScope(SemaRef, OMPD_loop, AStmt);
10624 AStmt, SemaRef, *DSAStack, VarsWithImplicitDSA, B);
10632 NestedLoopCount, Clauses, AStmt, B);
10636 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
10638 if (!AStmt)
10647 CapturedStmt *CS = setBranchProtectedScope(SemaRef, OMPD_teams_loop, AStmt);
10664 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
10668 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
10670 if (!AStmt)
10681 setBranchProtectedScope(SemaRef, OMPD_target_teams_loop, AStmt);
10696 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B,
10697 teamsLoopCanBeParallelFor(AStmt, SemaRef));
10701 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
10703 if (!AStmt)
10714 setBranchProtectedScope(SemaRef, OMPD_parallel_loop, AStmt);
10729 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
10733 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
10735 if (!AStmt)
10746 setBranchProtectedScope(SemaRef, OMPD_target_parallel_loop, AStmt);
10761 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
10765 Stmt *AStmt,
10768 if (!AStmt)
10771 assert(isa<CapturedStmt>(AStmt) && "Captured statement expected");
10793 AStmt);
10796 StmtResult SemaOpenMP::ActOnOpenMPMasterDirective(Stmt *AStmt,
10799 if (!AStmt)
10804 return OMPMasterDirective::Create(getASTContext(), StartLoc, EndLoc, AStmt);
10808 Stmt *AStmt,
10811 if (!AStmt)
10817 AStmt);
10822 Stmt *AStmt, SourceLocation StartLoc, SourceLocation EndLoc) {
10823 if (!AStmt)
10871 EndLoc, Clauses, AStmt);
10878 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
10880 if (!AStmt)
10883 setBranchProtectedScope(SemaRef, OMPD_parallel_for, AStmt);
10890 getOrderedNumberExpr(Clauses), AStmt, SemaRef, *DSAStack,
10899 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B,
10904 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
10906 if (!AStmt)
10910 setBranchProtectedScope(SemaRef, OMPD_parallel_for_simd, AStmt);
10929 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
10933 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
10935 if (!AStmt)
10938 setBranchProtectedScope(SemaRef, OMPD_parallel_master, AStmt);
10941 getASTContext(), StartLoc, EndLoc, Clauses, AStmt,
10946 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
10948 if (!AStmt)
10951 setBranchProtectedScope(SemaRef, OMPD_parallel_masked, AStmt);
10954 getASTContext(), StartLoc, EndLoc, Clauses, AStmt,
10959 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
10961 if (checkSectionsDirective(SemaRef, OMPD_parallel_sections, AStmt, DSAStack))
10967 getASTContext(), StartLoc, EndLoc, Clauses, AStmt,
10995 Stmt *AStmt,
10998 if (!AStmt)
11008 setBranchProtectedScope(SemaRef, OMPD_task, AStmt);
11011 AStmt, DSAStack->isCancelRegion());
11075 Stmt *AStmt, SourceLocation StartLoc,
11077 if (!AStmt)
11080 assert(isa<CapturedStmt>(AStmt) && "Captured statement expected");
11085 Clauses, AStmt,
11183 Stmt *AStmt, SourceLocation StartLoc,
11268 if ((!AStmt && !DependFound && !DoacrossFound) || ErrorFound)
11287 if (AStmt) {
11288 assert(isa<CapturedStmt>(AStmt) && "Captured statement expected");
11294 AStmt);
12353 Stmt *AStmt,
12359 if (!AStmt)
12462 Stmt *Body = AStmt;
12925 Context, StartLoc, EndLoc, Clauses, AStmt,
12930 Stmt *AStmt,
12933 if (!AStmt)
12936 CapturedStmt *CS = setBranchProtectedScope(SemaRef, OMPD_target, AStmt);
12978 AStmt);
12982 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
12984 if (!AStmt)
12987 setBranchProtectedScope(SemaRef, OMPD_target_parallel, AStmt);
12990 getASTContext(), StartLoc, EndLoc, Clauses, AStmt,
12995 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
12997 if (!AStmt)
13001 setBranchProtectedScope(SemaRef, OMPD_target_parallel_for, AStmt);
13017 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B,
13056 Stmt *AStmt, SourceLocation StartLoc,
13058 if (!AStmt)
13061 assert(isa<CapturedStmt>(AStmt) && "Captured statement expected");
13082 Clauses, AStmt);
13087 SourceLocation EndLoc, Stmt *AStmt) {
13088 if (!AStmt)
13091 setBranchProtectedScope(SemaRef, OMPD_target_enter_data, AStmt);
13102 Clauses, AStmt);
13107 SourceLocation EndLoc, Stmt *AStmt) {
13108 if (!AStmt)
13111 setBranchProtectedScope(SemaRef, OMPD_target_exit_data, AStmt);
13122 Clauses, AStmt);
13127 SourceLocation EndLoc, Stmt *AStmt) {
13128 if (!AStmt)
13131 setBranchProtectedScope(SemaRef, OMPD_target_update, AStmt);
13144 Clauses, AStmt);
13167 Stmt *AStmt,
13170 if (!AStmt)
13183 setBranchProtectedScope(SemaRef, OMPD_teams, AStmt);
13188 AStmt);
13250 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13252 if (!AStmt)
13255 assert(isa<CapturedStmt>(AStmt) && "Captured statement expected");
13261 /*OrderedLoopCountExpr=*/nullptr, AStmt, SemaRef,
13283 NestedLoopCount, Clauses, AStmt, B,
13288 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13290 if (!AStmt)
13294 setBranchProtectedScope(SemaRef, OMPD_taskloop_simd, AStmt);
13296 assert(isa<CapturedStmt>(AStmt) && "Captured statement expected");
13325 NestedLoopCount, Clauses, AStmt, B);
13329 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13331 if (!AStmt)
13334 assert(isa<CapturedStmt>(AStmt) && "Captured statement expected");
13340 /*OrderedLoopCountExpr=*/nullptr, AStmt, SemaRef,
13362 NestedLoopCount, Clauses, AStmt, B,
13367 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13369 if (!AStmt)
13372 assert(isa<CapturedStmt>(AStmt) && "Captured statement expected");
13378 /*OrderedLoopCountExpr=*/nullptr, AStmt, SemaRef,
13400 NestedLoopCount, Clauses, AStmt, B,
13405 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13407 if (!AStmt)
13411 setBranchProtectedScope(SemaRef, OMPD_master_taskloop_simd, AStmt);
13413 assert(isa<CapturedStmt>(AStmt) && "Captured statement expected");
13442 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
13446 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13448 if (!AStmt)
13452 setBranchProtectedScope(SemaRef, OMPD_masked_taskloop_simd, AStmt);
13454 assert(isa<CapturedStmt>(AStmt) && "Captured statement expected");
13483 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
13487 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13489 if (!AStmt)
13493 setBranchProtectedScope(SemaRef, OMPD_parallel_master_taskloop, AStmt);
13521 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B,
13526 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13528 if (!AStmt)
13532 setBranchProtectedScope(SemaRef, OMPD_parallel_masked_taskloop, AStmt);
13560 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B,
13565 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13567 if (!AStmt)
13571 SemaRef, OMPD_parallel_master_taskloop_simd, AStmt);
13601 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
13605 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13607 if (!AStmt)
13611 SemaRef, OMPD_parallel_masked_taskloop_simd, AStmt);
13641 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
13645 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13647 if (!AStmt)
13650 assert(isa<CapturedStmt>(AStmt) && "Captured statement expected");
13656 nullptr /*ordered not a clause on distribute*/, AStmt,
13666 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
13671 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13673 if (!AStmt)
13677 setBranchProtectedScope(SemaRef, OMPD_distribute_parallel_for, AStmt);
13693 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B,
13698 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13700 if (!AStmt)
13704 SemaRef, OMPD_distribute_parallel_for_simd, AStmt);
13723 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
13727 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13729 if (!AStmt)
13733 setBranchProtectedScope(SemaRef, OMPD_distribute_simd, AStmt);
13752 NestedLoopCount, Clauses, AStmt, B);
13756 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13758 if (!AStmt)
13762 setBranchProtectedScope(SemaRef, OMPD_target_parallel_for_simd, AStmt);
13781 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
13785 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13787 if (!AStmt)
13790 CapturedStmt *CS = setBranchProtectedScope(SemaRef, OMPD_target_simd, AStmt);
13809 NestedLoopCount, Clauses, AStmt, B);
13813 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13815 if (!AStmt)
13819 setBranchProtectedScope(SemaRef, OMPD_teams_distribute, AStmt);
13837 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
13841 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13843 if (!AStmt)
13847 setBranchProtectedScope(SemaRef, OMPD_teams_distribute_simd, AStmt);
13868 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
13872 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13874 if (!AStmt)
13878 SemaRef, OMPD_teams_distribute_parallel_for_simd, AStmt);
13899 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
13903 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13905 if (!AStmt)
13909 SemaRef, OMPD_teams_distribute_parallel_for, AStmt);
13928 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B,
13933 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13935 if (!AStmt)
13938 setBranchProtectedScope(SemaRef, OMPD_target_teams, AStmt);
13964 Clauses, AStmt);
13968 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
13970 if (!AStmt)
13980 setBranchProtectedScope(SemaRef, OMPD_target_teams_distribute, AStmt);
13996 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
14000 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
14002 if (!AStmt)
14012 SemaRef, OMPD_target_teams_distribute_parallel_for, AStmt);
14028 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B,
14033 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
14035 if (!AStmt)
14045 SemaRef, OMPD_target_teams_distribute_parallel_for_simd, AStmt);
14065 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
14069 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
14071 if (!AStmt)
14081 SemaRef, OMPD_target_teams_distribute_simd, AStmt);
14100 getASTContext(), StartLoc, EndLoc, NestedLoopCount, Clauses, AStmt, B);
14104 OpenMPDirectiveKind Kind, Stmt *AStmt, int NumLoops,
14109 AStmt->IgnoreContainers(), /*TryImperfectlyNestedLoops=*/false, NumLoops,
14195 static void collectLoopStmts(Stmt *AStmt, MutableArrayRef<Stmt *> LoopStmts) {
14198 AStmt, /*TryImperfectlyNestedLoops=*/false, NumLoops,
14209 Stmt *AStmt,
14223 if (!AStmt)
14230 if (!checkTransformableLoopNest(OMPD_tile, AStmt, NumLoops, LoopHelpers, Body,
14237 NumLoops, AStmt, nullptr, nullptr);
14248 collectLoopStmts(AStmt, LoopStmts);
14476 AStmt, Inner,
14481 Stmt *AStmt,
14487 if (!AStmt)
14506 if (!checkTransformableLoopNest(OMPD_unroll, AStmt, NumLoops, LoopHelpers,
14514 return OMPUnrollDirective::Create(Context, StartLoc, EndLoc, Clauses, AStmt,
14528 Diag(AStmt->getBeginLoc(), diag::err_omp_unroll_full_variable_trip_count);
14539 return OMPUnrollDirective::Create(Context, StartLoc, EndLoc, Clauses, AStmt,
14586 collectLoopStmts(AStmt, {LoopStmt});
14755 return OMPUnrollDirective::Create(Context, StartLoc, EndLoc, Clauses, AStmt,
14760 StmtResult SemaOpenMP::ActOnOpenMPReverseDirective(Stmt *AStmt,
14767 if (!AStmt)
14775 if (!checkTransformableLoopNest(OMPD_reverse, AStmt, NumLoops, LoopHelpers,
14782 return OMPReverseDirective::Create(Context, StartLoc, EndLoc, AStmt,
14793 collectLoopStmts(AStmt, {LoopStmt});
14942 return OMPReverseDirective::Create(Context, StartLoc, EndLoc, AStmt,
14948 ArrayRef<OMPClause *> Clauses, Stmt *AStmt, SourceLocation StartLoc,
14955 if (!AStmt)
14967 if (!checkTransformableLoopNest(OMPD_interchange, AStmt, NumLoops,
14974 NumLoops, AStmt, nullptr, nullptr);
15027 NumLoops, AStmt, AStmt, nullptr);
15031 collectLoopStmts(AStmt, LoopStmts);
15140 NumLoops, AStmt, Inner,
23312 Stmt *AStmt,
23315 if (!AStmt)
23321 AStmt);