Lines Matching refs:DSAStack
1874 #define DSAStack static_cast<DSAStackTy *>(VarDataSharingAttributesStack) macro
1877 DSAStack->pushFunction(); in pushOpenMPFunctionRegion()
1881 DSAStack->popFunction(OldFSI); in popOpenMPFunctionRegion()
1990 if (DSAStack->hasExplicitDirective(isOpenMPTargetExecutionDirective, Level)) { in isOpenMPCapturedByRef()
2053 DSAStack->checkMappableExprComponentListsForDeclAtLevel( in isOpenMPCapturedByRef()
2098 IsByRef = (DSAStack->isForceCaptureByReferenceInTargetExecutable() && in isOpenMPCapturedByRef()
2101 DSAStack->isDefaultmapCapturedByRef( in isOpenMPCapturedByRef()
2103 DSAStack->hasExplicitDSA( in isOpenMPCapturedByRef()
2115 DSAStack->getCaptureRegion(Level, OpenMPCaptureLevel) == in isOpenMPCapturedByRef()
2117 !(DSAStack->hasExplicitDSA( in isOpenMPCapturedByRef()
2124 DSAStack->isUsesAllocatorsDecl(Level, D))) && in isOpenMPCapturedByRef()
2131 !(DSAStack->getDefaultDSA() == DSA_firstprivate && in isOpenMPCapturedByRef()
2132 !DSAStack->hasExplicitDSA( in isOpenMPCapturedByRef()
2135 !DSAStack->isLoopControlVariable(D, Level).first); in isOpenMPCapturedByRef()
2154 return DSAStack->getNestingLevel(); in getOpenMPNestingLevel()
2158 return (isOpenMPTargetExecutionDirective(DSAStack->getCurrentDirective()) && in isInOpenMPTargetExecutionDirective()
2159 !DSAStack->isClauseParsingMode()) || in isInOpenMPTargetExecutionDirective()
2160 DSAStack->hasDirective( in isInOpenMPTargetExecutionDirective()
2183 *DSAStack, CheckScopeInfo && DSAStack->isBodyComplete()); in isOpenMPCapturedDecl()
2192 DSAStack->getTopDSA(D, DSAStack->isClauseParsingMode()); in isOpenMPCapturedDecl()
2215 DSAStack->getDirective(CSI->OpenMPLevel)); in isOpenMPCapturedDecl()
2245 if (DSAStack->getCurrentDirective() != OMPD_unknown && in isOpenMPCapturedDecl()
2246 (!DSAStack->isClauseParsingMode() || in isOpenMPCapturedDecl()
2247 DSAStack->getParentDirective() != OMPD_unknown)) { in isOpenMPCapturedDecl()
2248 auto &&Info = DSAStack->isLoopControlVariable(D); in isOpenMPCapturedDecl()
2251 isImplicitOrExplicitTaskingRegion(DSAStack->getCurrentDirective())) || in isOpenMPCapturedDecl()
2252 (VD && DSAStack->isForceVarCapturing())) in isOpenMPCapturedDecl()
2255 DSAStack->getTopDSA(D, DSAStack->isClauseParsingMode()); in isOpenMPCapturedDecl()
2264 DSAStackTy::DSAVarData DVarPrivate = DSAStack->hasDSA( in isOpenMPCapturedDecl()
2270 DSAStack->isClauseParsingMode()); in isOpenMPCapturedDecl()
2273 ((DSAStack->getDefaultDSA() != DSA_none && in isOpenMPCapturedDecl()
2274 DSAStack->getDefaultDSA() != DSA_firstprivate) || in isOpenMPCapturedDecl()
2278 (VD && (DSAStack->getDefaultDSA() == DSA_none || in isOpenMPCapturedDecl()
2279 DSAStack->getDefaultDSA() == DSA_firstprivate))) in isOpenMPCapturedDecl()
2287 FunctionScopesIndex -= getOpenMPCaptureLevels(DSAStack->getDirective(Level)); in adjustOpenMPTargetScopeIndex()
2292 if (isOpenMPLoopDirective(DSAStack->getCurrentDirective())) in startOpenMPLoop()
2293 DSAStack->loopInit(); in startOpenMPLoop()
2298 if (isOpenMPLoopDirective(DSAStack->getCurrentDirective())) { in startOpenMPCXXRangeFor()
2299 DSAStack->resetPossibleLoopCounter(); in startOpenMPCXXRangeFor()
2300 DSAStack->loopStart(); in startOpenMPCXXRangeFor()
2307 if (DSAStack->hasExplicitDirective( in isOpenMPPrivateDecl()
2316 OpenMPDirectiveKind DKind = DSAStack->getDirective(Level); in isOpenMPPrivateDecl()
2322 if (DSAStack->hasExplicitDSA( in isOpenMPPrivateDecl()
2327 DSAStackTy::DSAVarData DVar = DSAStack->getImplicitDSA(D, Level); in isOpenMPPrivateDecl()
2329 !DSAStack->isLoopControlVariable(D, Level).first && !DVar.RefExpr) { in isOpenMPPrivateDecl()
2330 DSAStack->addImplicitTaskFirstprivate(Level, D); in isOpenMPPrivateDecl()
2335 if (isOpenMPLoopDirective(DSAStack->getCurrentDirective())) { in isOpenMPPrivateDecl()
2336 if (DSAStack->getAssociatedLoops() > 0 && in isOpenMPPrivateDecl()
2337 !DSAStack->isLoopStarted()) { in isOpenMPPrivateDecl()
2338 DSAStack->resetPossibleLoopCounter(D); in isOpenMPPrivateDecl()
2339 DSAStack->loopStart(); in isOpenMPPrivateDecl()
2342 if ((DSAStack->getPossiblyLoopCunter() == D->getCanonicalDecl() || in isOpenMPPrivateDecl()
2343 DSAStack->isLoopControlVariable(D).first) && in isOpenMPPrivateDecl()
2344 !DSAStack->hasExplicitDSA( in isOpenMPPrivateDecl()
2347 !isOpenMPSimdDirective(DSAStack->getCurrentDirective())) in isOpenMPPrivateDecl()
2351 if (DSAStack->isThreadPrivate(const_cast<VarDecl *>(VD)) && in isOpenMPPrivateDecl()
2352 DSAStack->isForceVarCapturing() && in isOpenMPPrivateDecl()
2353 !DSAStack->hasExplicitDSA( in isOpenMPPrivateDecl()
2360 if (DSAStack->hasExplicitDirective(isOpenMPTargetExecutionDirective, Level) && in isOpenMPPrivateDecl()
2361 DSAStack->isUsesAllocatorsDecl(Level, D).getValueOr( in isOpenMPPrivateDecl()
2365 return (DSAStack->hasExplicitDSA( in isOpenMPPrivateDecl()
2368 (DSAStack->isClauseParsingMode() && in isOpenMPPrivateDecl()
2369 DSAStack->getClauseParsingMode() == OMPC_private) || in isOpenMPPrivateDecl()
2372 (DSAStack->hasExplicitDirective( in isOpenMPPrivateDecl()
2380 DSAStack->isTaskgroupReductionRef(D, Level))) in isOpenMPPrivateDecl()
2390 for (unsigned I = DSAStack->getNestingLevel() + 1; I > Level; --I) { in setOpenMPCaptureKind()
2392 if (DSAStack->hasExplicitDSA( in setOpenMPCaptureKind()
2403 if (DSAStack->checkMappableExprComponentListsForDeclAtLevel( in setOpenMPCaptureKind()
2410 if (DSAStack->hasExplicitDirective(isOpenMPTargetExecutionDirective, in setOpenMPCaptureKind()
2413 if (DSAStack->mustBeFirstprivateAtLevel( in setOpenMPCaptureKind()
2429 getOpenMPCaptureRegions(Regions, DSAStack->getDirective(Level)); in isOpenMPTargetCapturedDecl()
2432 DSAStack->hasExplicitDirective(isOpenMPTargetExecutionDirective, in isOpenMPTargetCapturedDecl()
2447 DSAStack->getTopDSA(D, /*FromParent=*/false); in isOpenMPGlobalCapturedDecl()
2449 getOpenMPCaptureLevels(DSAStack->getDirective(Level)); in isOpenMPGlobalCapturedDecl()
2454 DSAStackTy::DSAVarData DVar = DSAStack->getImplicitDSA(D, Level); in isOpenMPGlobalCapturedDecl()
2463 void Sema::DestroyDataSharingAttributesStack() { delete DSAStack; } in DestroyDataSharingAttributesStack()
2519 DSAStack->push(DKind, DirName, CurScope, Loc); in StartOpenMPDSABlock()
2525 DSAStack->setClauseParsingMode(K); in StartOpenMPClause()
2529 DSAStack->setClauseParsingMode(/*K=*/OMPC_unknown); in EndOpenMPClause()
2632 DSAStack->getTopDSA(VD, /*FromParent=*/false); in EndOpenMPDSABlock()
2675 DSAStack->getTopDSA(D, /*FromParent=*/false); in EndOpenMPDSABlock()
2692 DSAStack->getTopDSA(VD, /*FromParent=*/false); in EndOpenMPDSABlock()
2699 DSAStack->checkMappableExprComponentListsForDecl( in EndOpenMPDSABlock()
2719 reportOriginalDsa(*this, DSAStack, VD, DVar); in EndOpenMPDSABlock()
2730 checkAllocateClauses(*this, DSAStack, D->clauses()); in EndOpenMPDSABlock()
2731 checkReductionClauses(*this, DSAStack, D->clauses()); in EndOpenMPDSABlock()
2734 DSAStack->pop(); in EndOpenMPDSABlock()
2904 !DSAStack->isThreadPrivate(VD)) { in ActOnOpenMPIdExpression()
3023 DSAStack->addDSA(VD, DE, OMPC_threadprivate); in CheckOMPThreadPrivateDecl()
3141 !DSAStack->hasRequiresDeclWithClause<OMPDynamicAllocatorsClause>()) in ActOnOpenMPAllocateDirective()
3147 getAllocatorKind(*this, DSAStack, Allocator); in ActOnOpenMPAllocateDirective()
3162 if (checkPreviousOMPAllocateAttribute(*this, DSAStack, RefExpr, VD, in ActOnOpenMPAllocateDirective()
3208 DSAStack->addRequiresDecl(D); in ActOnOpenMPRequiresDirective()
3278 DSAStack->getEncounteredTargetLocs(); in CheckOMPRequiresDecl()
3279 SourceLocation AtomicLoc = DSAStack->getAtomicDirectiveLoc(); in CheckOMPRequiresDecl()
3303 if (!DSAStack->hasDuplicateRequiresClause(ClauseList)) in CheckOMPRequiresDecl()
3887 ActOnCapturedRegionStart(DSAStack->getConstructLoc(), CurScope, CR_OpenMP, in ActOnOpenMPRegionStart()
3915 ActOnCapturedRegionStart(DSAStack->getConstructLoc(), CurScope, CR_OpenMP, in ActOnOpenMPRegionStart()
3927 ActOnCapturedRegionStart(DSAStack->getConstructLoc(), CurScope, CR_OpenMP, in ActOnOpenMPRegionStart()
3936 ActOnCapturedRegionStart(DSAStack->getConstructLoc(), CurScope, CR_OpenMP, in ActOnOpenMPRegionStart()
3960 ActOnCapturedRegionStart(DSAStack->getConstructLoc(), CurScope, CR_OpenMP, in ActOnOpenMPRegionStart()
3968 ActOnCapturedRegionStart(DSAStack->getConstructLoc(), CurScope, CR_OpenMP, in ActOnOpenMPRegionStart()
3994 ActOnCapturedRegionStart(DSAStack->getConstructLoc(), CurScope, CR_OpenMP, in ActOnOpenMPRegionStart()
4017 ActOnCapturedRegionStart(DSAStack->getConstructLoc(), CurScope, CR_OpenMP, in ActOnOpenMPRegionStart()
4062 ActOnCapturedRegionStart(DSAStack->getConstructLoc(), CurScope, CR_OpenMP, in ActOnOpenMPRegionStart()
4092 ActOnCapturedRegionStart(DSAStack->getConstructLoc(), CurScope, CR_OpenMP, in ActOnOpenMPRegionStart()
4113 ActOnCapturedRegionStart(DSAStack->getConstructLoc(), CurScope, CR_OpenMP, in ActOnOpenMPRegionStart()
4135 ActOnCapturedRegionStart(DSAStack->getConstructLoc(), CurScope, CR_OpenMP, in ActOnOpenMPRegionStart()
4160 ActOnCapturedRegionStart(DSAStack->getConstructLoc(), CurScope, CR_OpenMP, in ActOnOpenMPRegionStart()
4172 ActOnCapturedRegionStart(DSAStack->getConstructLoc(), CurScope, CR_OpenMP, in ActOnOpenMPRegionStart()
4181 ActOnCapturedRegionStart(DSAStack->getConstructLoc(), CurScope, CR_OpenMP, in ActOnOpenMPRegionStart()
4193 ActOnCapturedRegionStart(DSAStack->getConstructLoc(), CurScope, CR_OpenMP, in ActOnOpenMPRegionStart()
4210 ActOnCapturedRegionStart(DSAStack->getConstructLoc(), CurScope, CR_OpenMP, in ActOnOpenMPRegionStart()
4222 ActOnCapturedRegionStart(DSAStack->getConstructLoc(), CurScope, CR_OpenMP, in ActOnOpenMPRegionStart()
4247 ActOnCapturedRegionStart(DSAStack->getConstructLoc(), CurScope, CR_OpenMP, in ActOnOpenMPRegionStart()
4281 DSAStack->setContext(CurContext); in ActOnOpenMPRegionStart()
4285 return getOpenMPCaptureLevels(DSAStack->getDirective(Level)); in getNumberOfConstructScopes()
4389 (isOpenMPTargetExecutionDirective(DSAStack->getCurrentDirective()) || in tryCaptureOpenMPLambdas()
4391 DSAStack->getCurrentDirective()))) { in tryCaptureOpenMPLambdas()
4397 DSAStack->isForceCaptureByReferenceInTargetExecutable(); in tryCaptureOpenMPLambdas()
4398 DSAStack->setForceCaptureByReferenceInTargetExecutable( in tryCaptureOpenMPLambdas()
4419 DSAStack->setForceCaptureByReferenceInTargetExecutable( in tryCaptureOpenMPLambdas()
4457 if (DSAStack->getCurrentDirective() == OMPD_atomic || in ActOnOpenMPRegionEnd()
4458 DSAStack->getCurrentDirective() == OMPD_critical || in ActOnOpenMPRegionEnd()
4459 DSAStack->getCurrentDirective() == OMPD_section || in ActOnOpenMPRegionEnd()
4460 DSAStack->getCurrentDirective() == OMPD_master || in ActOnOpenMPRegionEnd()
4461 DSAStack->getCurrentDirective() == OMPD_masked) in ActOnOpenMPRegionEnd()
4466 *this, ErrorFound, DSAStack->getCurrentDirective()); in ActOnOpenMPRegionEnd()
4473 getOpenMPCaptureRegions(CaptureRegions, DSAStack->getCurrentDirective()); in ActOnOpenMPRegionEnd()
4481 isOpenMPTaskingDirective(DSAStack->getCurrentDirective()) && in ActOnOpenMPRegionEnd()
4495 DSAStack->setForceVarCapturing(Clause->getClauseKind() == OMPC_copyin); in ActOnOpenMPRegionEnd()
4502 DSAStack->setForceVarCapturing(/*V=*/false); in ActOnOpenMPRegionEnd()
4504 DSAStack->getCurrentDirective())) { in ActOnOpenMPRegionEnd()
4524 for (Expr *E : DSAStack->getInnerAllocators()) in ActOnOpenMPRegionEnd()
4556 if (isOpenMPWorksharingDirective(DSAStack->getCurrentDirective()) && in ActOnOpenMPRegionEnd()
4557 isOpenMPSimdDirective(DSAStack->getCurrentDirective()) && OC && in ActOnOpenMPRegionEnd()
4560 << getOpenMPDirectiveName(DSAStack->getCurrentDirective()); in ActOnOpenMPRegionEnd()
4616 DSAStack->setBodyComplete(); in ActOnOpenMPRegionEnd()
5713 checkNestingOfRegions(*this, DSAStack, Kind, DirName, CancelRegion, in ActOnOpenMPExecutableDirective()
5727 DSAAttrChecker DSAChecker(DSAStack, *this, cast<CapturedStmt>(AStmt)); in ActOnOpenMPExecutableDirective()
5829 processImplicitMapsWithDefaultMappers(*this, DSAStack, in ActOnOpenMPExecutableDirective()
6174 if (DSAStack->getDefaultDSA() == DSA_none || in ActOnOpenMPExecutableDirective()
6175 DSAStack->getDefaultDSA() == DSA_firstprivate) { in ActOnOpenMPExecutableDirective()
6176 DSAAttrChecker DSAChecker(DSAStack, *this, nullptr); in ActOnOpenMPExecutableDirective()
6289 if (DSAStack->getDefaultDSA() == DSA_none || in ActOnOpenMPExecutableDirective()
6290 DSAStack->getDefaultDSA() == DSA_firstprivate) { in ActOnOpenMPExecutableDirective()
6293 Diag(DSAStack->getDefaultDSALocation(), diag::note_omp_default_dsa_none); in ActOnOpenMPExecutableDirective()
6298 Diag(DSAStack->getDefaultDSALocation(), in ActOnOpenMPExecutableDirective()
6312 !(DSAStack->hasRequiresDeclWithClause<OMPUnifiedSharedMemoryClause>() || in ActOnOpenMPExecutableDirective()
6313 DSAStack->hasRequiresDeclWithClause<OMPUnifiedAddressClause>() || in ActOnOpenMPExecutableDirective()
6314 DSAStack->hasRequiresDeclWithClause<OMPReverseOffloadClause>() || in ActOnOpenMPExecutableDirective()
6315 DSAStack->hasRequiresDeclWithClause<OMPDynamicAllocatorsClause>())) { in ActOnOpenMPExecutableDirective()
6317 DSAStack->addTargetDirLocation(StartLoc); in ActOnOpenMPExecutableDirective()
7121 DSAStack->getTaskgroupReductionRef(), in ActOnOpenMPParallelDirective()
7122 DSAStack->isCancelRegion()); in ActOnOpenMPParallelDirective()
8466 unsigned AssociatedLoops = DSAStack->getAssociatedLoops(); in ActOnOpenMPLoopInitialization()
8468 isOpenMPLoopDirective(DSAStack->getCurrentDirective())) { in ActOnOpenMPLoopInitialization()
8469 DSAStack->loopStart(); in ActOnOpenMPLoopInitialization()
8471 *DSAStack, ForLoc); in ActOnOpenMPLoopInitialization()
8485 DSAStack->addLoopControlVariable(D, VD); in ActOnOpenMPLoopInitialization()
8486 const Decl *LD = DSAStack->getPossiblyLoopCunter(); in ActOnOpenMPLoopInitialization()
8488 DSAStack->resetPossibleLoopCounter(); in ActOnOpenMPLoopInitialization()
8495 OpenMPDirectiveKind DKind = DSAStack->getCurrentDirective(); in ActOnOpenMPLoopInitialization()
8504 DSAStack->getTopDSA(D, /*FromParent=*/false); in ActOnOpenMPLoopInitialization()
8510 ? (DSAStack->hasMutipleLoops() ? OMPC_lastprivate : OMPC_linear) in ActOnOpenMPLoopInitialization()
8529 reportOriginalDsa(*this, DSAStack, D, DVar, in ActOnOpenMPLoopInitialization()
8537 DSAStack->addDSA(D, LoopDeclRefExpr, PredeterminedCKind, in ActOnOpenMPLoopInitialization()
8542 DSAStack->setAssociatedLoops(AssociatedLoops - 1); in ActOnOpenMPLoopInitialization()
9639 AStmt, *this, *DSAStack, VarsWithImplicitDSA, B); in ActOnOpenMPSimdDirective()
9652 DSAStack)) in ActOnOpenMPSimdDirective()
9678 AStmt, *this, *DSAStack, VarsWithImplicitDSA, B); in ActOnOpenMPForDirective()
9691 DSAStack)) in ActOnOpenMPForDirective()
9699 DSAStack->getTaskgroupReductionRef(), DSAStack->isCancelRegion()); in ActOnOpenMPForDirective()
9714 getOrderedNumberExpr(Clauses), AStmt, *this, *DSAStack, in ActOnOpenMPForSimdDirective()
9728 DSAStack)) in ActOnOpenMPForSimdDirective()
9766 ->setHasCancel(DSAStack->isCancelRegion()); in ActOnOpenMPSectionsDirective()
9776 DSAStack->getTaskgroupReductionRef(), in ActOnOpenMPSectionsDirective()
9777 DSAStack->isCancelRegion()); in ActOnOpenMPSectionsDirective()
9787 DSAStack->setParentCancelRegion(DSAStack->isCancelRegion()); in ActOnOpenMPSectionDirective()
9790 DSAStack->isCancelRegion()); in ActOnOpenMPSectionDirective()
9933 const auto Pair = DSAStack->getCriticalWithHint(DirName); in ActOnOpenMPCriticalDirective()
9958 DSAStack->addCriticalWithHint(Dir, Hint); in ActOnOpenMPCriticalDirective()
9981 getOrderedNumberExpr(Clauses), AStmt, *this, *DSAStack, in ActOnOpenMPParallelForDirective()
9995 DSAStack)) in ActOnOpenMPParallelForDirective()
10003 DSAStack->getTaskgroupReductionRef(), DSAStack->isCancelRegion()); in ActOnOpenMPParallelForDirective()
10025 getOrderedNumberExpr(Clauses), AStmt, *this, *DSAStack, in ActOnOpenMPParallelForSimdDirective()
10036 DSAStack)) in ActOnOpenMPParallelForSimdDirective()
10069 DSAStack->getTaskgroupReductionRef()); in ActOnOpenMPParallelMasterDirective()
10097 ->setHasCancel(DSAStack->isCancelRegion()); in ActOnOpenMPParallelSectionsDirective()
10109 DSAStack->getTaskgroupReductionRef(), DSAStack->isCancelRegion()); in ActOnOpenMPParallelSectionsDirective()
10158 DSAStack->isCancelRegion()); in ActOnOpenMPTaskDirective()
10189 DSAStack->getTaskgroupReductionRef()); in ActOnOpenMPTaskgroupDirective()
10263 if (Scope *S = DSAStack->getCurScope()) { in ActOnOpenMPScanDirective()
10272 if (DSAStack->doesParentHasScanDirective()) { in ActOnOpenMPScanDirective()
10274 Diag(DSAStack->getParentScanDirectiveLoc(), in ActOnOpenMPScanDirective()
10279 DSAStack->setParentHasScanDirective(StartLoc); in ActOnOpenMPScanDirective()
10325 isOpenMPSimdDirective(DSAStack->getParentDirective())) { in ActOnOpenMPOrderedDirective()
10336 } else if (DependFound && !DSAStack->getParentOrderedRegionParam().first) { in ActOnOpenMPOrderedDirective()
10341 if (const Expr *Param = DSAStack->getParentOrderedRegionParam().first) { in ActOnOpenMPOrderedDirective()
10358 if (DSAStack->doesParentHasOrderedDirective()) { in ActOnOpenMPOrderedDirective()
10360 Diag(DSAStack->getParentOrderedDirectiveLoc(), in ActOnOpenMPOrderedDirective()
10365 DSAStack->setParentHasOrderedDirective(StartLoc); in ActOnOpenMPOrderedDirective()
10624 DSAStack->addAtomicDirectiveLoc(StartLoc); in ActOnOpenMPAtomicDirective()
11122 if (DSAStack->hasInnerTeamsRegion()) { in ActOnOpenMPTargetDirective()
11145 Diag(DSAStack->getInnerTeamsRegionLoc(), in ActOnOpenMPTargetDirective()
11187 DSAStack->getTaskgroupReductionRef(), DSAStack->isCancelRegion()); in ActOnOpenMPTargetParallelDirective()
11219 getOrderedNumberExpr(Clauses), CS, *this, *DSAStack, in ActOnOpenMPTargetParallelForDirective()
11233 DSAStack)) in ActOnOpenMPTargetParallelForDirective()
11241 DSAStack->getTaskgroupReductionRef(), DSAStack->isCancelRegion()); in ActOnOpenMPTargetParallelForDirective()
11410 DSAStack->setParentTeamsRegionLoc(StartLoc); in ActOnOpenMPTeamsDirective()
11419 if (DSAStack->isParentNowaitRegion()) { in ActOnOpenMPCancellationPointDirective()
11423 if (DSAStack->isParentOrderedRegion()) { in ActOnOpenMPCancellationPointDirective()
11435 if (DSAStack->isParentNowaitRegion()) { in ActOnOpenMPCancelDirective()
11439 if (DSAStack->isParentOrderedRegion()) { in ActOnOpenMPCancelDirective()
11443 DSAStack->setParentCancelRegion(/*Cancel=*/true); in ActOnOpenMPCancelDirective()
11509 /*OrderedLoopCountExpr=*/nullptr, AStmt, *this, *DSAStack, in ActOnOpenMPTaskLoopDirective()
11531 DSAStack->isCancelRegion()); in ActOnOpenMPTaskLoopDirective()
11546 /*OrderedLoopCountExpr=*/nullptr, AStmt, *this, *DSAStack, in ActOnOpenMPTaskLoopSimdDirective()
11560 DSAStack)) in ActOnOpenMPTaskLoopSimdDirective()
11595 /*OrderedLoopCountExpr=*/nullptr, AStmt, *this, *DSAStack, in ActOnOpenMPMasterTaskLoopDirective()
11617 DSAStack->isCancelRegion()); in ActOnOpenMPMasterTaskLoopDirective()
11632 /*OrderedLoopCountExpr=*/nullptr, AStmt, *this, *DSAStack, in ActOnOpenMPMasterTaskLoopSimdDirective()
11646 DSAStack)) in ActOnOpenMPMasterTaskLoopSimdDirective()
11700 /*OrderedLoopCountExpr=*/nullptr, CS, *this, *DSAStack, in ActOnOpenMPParallelMasterTaskLoopDirective()
11722 DSAStack->isCancelRegion()); in ActOnOpenMPParallelMasterTaskLoopDirective()
11756 /*OrderedLoopCountExpr=*/nullptr, CS, *this, *DSAStack, in ActOnOpenMPParallelMasterTaskLoopSimdDirective()
11770 DSAStack)) in ActOnOpenMPParallelMasterTaskLoopSimdDirective()
11806 *this, *DSAStack, VarsWithImplicitDSA, B); in ActOnOpenMPDistributeDirective()
11848 nullptr /*ordered not a clause on distribute*/, CS, *this, *DSAStack, in ActOnOpenMPDistributeParallelForDirective()
11859 DSAStack->getTaskgroupReductionRef(), DSAStack->isCancelRegion()); in ActOnOpenMPDistributeParallelForDirective()
11892 nullptr /*ordered not a clause on distribute*/, CS, *this, *DSAStack, in ActOnOpenMPDistributeParallelForSimdDirective()
11906 DSAStack)) in ActOnOpenMPDistributeParallelForSimdDirective()
11949 *DSAStack, VarsWithImplicitDSA, B); in ActOnOpenMPDistributeSimdDirective()
11962 DSAStack)) in ActOnOpenMPDistributeSimdDirective()
12004 getOrderedNumberExpr(Clauses), CS, *this, *DSAStack, in ActOnOpenMPTargetParallelForSimdDirective()
12018 DSAStack)) in ActOnOpenMPTargetParallelForSimdDirective()
12059 getOrderedNumberExpr(Clauses), CS, *this, *DSAStack, in ActOnOpenMPTargetSimdDirective()
12073 DSAStack)) in ActOnOpenMPTargetSimdDirective()
12116 *DSAStack, VarsWithImplicitDSA, B); in ActOnOpenMPTeamsDistributeDirective()
12125 DSAStack->setParentTeamsRegionLoc(StartLoc); in ActOnOpenMPTeamsDistributeDirective()
12161 nullptr /*ordered not a clause on distribute*/, CS, *this, *DSAStack, in ActOnOpenMPTeamsDistributeSimdDirective()
12176 DSAStack)) in ActOnOpenMPTeamsDistributeSimdDirective()
12186 DSAStack->setParentTeamsRegionLoc(StartLoc); in ActOnOpenMPTeamsDistributeSimdDirective()
12223 nullptr /*ordered not a clause on distribute*/, CS, *this, *DSAStack, in ActOnOpenMPTeamsDistributeParallelForSimdDirective()
12238 DSAStack)) in ActOnOpenMPTeamsDistributeParallelForSimdDirective()
12248 DSAStack->setParentTeamsRegionLoc(StartLoc); in ActOnOpenMPTeamsDistributeParallelForSimdDirective()
12285 nullptr /*ordered not a clause on distribute*/, CS, *this, *DSAStack, in ActOnOpenMPTeamsDistributeParallelForDirective()
12296 DSAStack->setParentTeamsRegionLoc(StartLoc); in ActOnOpenMPTeamsDistributeParallelForDirective()
12300 DSAStack->getTaskgroupReductionRef(), DSAStack->isCancelRegion()); in ActOnOpenMPTeamsDistributeParallelForDirective()
12364 nullptr /*ordered not a clause on distribute*/, CS, *this, *DSAStack, in ActOnOpenMPTargetTeamsDistributeDirective()
12407 nullptr /*ordered not a clause on distribute*/, CS, *this, *DSAStack, in ActOnOpenMPTargetTeamsDistributeParallelForDirective()
12421 DSAStack)) in ActOnOpenMPTargetTeamsDistributeParallelForDirective()
12429 DSAStack->getTaskgroupReductionRef(), DSAStack->isCancelRegion()); in ActOnOpenMPTargetTeamsDistributeParallelForDirective()
12464 *DSAStack, VarsWithImplicitDSA, B); in ActOnOpenMPTargetTeamsDistributeParallelForSimdDirective()
12478 DSAStack)) in ActOnOpenMPTargetTeamsDistributeParallelForSimdDirective()
12521 nullptr /*ordered not a clause on distribute*/, CS, *this, *DSAStack, in ActOnOpenMPTargetTeamsDistributeSimdDirective()
12535 DSAStack)) in ActOnOpenMPTargetTeamsDistributeSimdDirective()
12576 *DSAStack, TmpDSA, LoopHelpers[Cnt]); in ActOnOpenMPTileDirective()
13717 OpenMPDirectiveKind DKind = DSAStack->getCurrentDirective(); in ActOnOpenMPIfClause()
13749 OpenMPDirectiveKind DKind = DSAStack->getCurrentDirective(); in ActOnOpenMPFinalClause()
13863 OpenMPDirectiveKind DKind = DSAStack->getCurrentDirective(); in ActOnOpenMPNumThreadsClause()
13902 if (CKind == OMPC_collapse && DSAStack->getAssociatedLoops() == 1) in VerifyPositiveIntegerConstantInClause()
13903 DSAStack->setAssociatedLoops(Result.getExtValue()); in VerifyPositiveIntegerConstantInClause()
13905 DSAStack->setAssociatedLoops(Result.getExtValue()); in VerifyPositiveIntegerConstantInClause()
13984 if (!findOMPAllocatorHandleT(*this, A->getExprLoc(), DSAStack)) in ActOnOpenMPAllocatorClause()
13991 DSAStack->getOMPAllocatorHandleT(), in ActOnOpenMPAllocatorClause()
14036 Context, NumForLoops, NumForLoops ? DSAStack->getAssociatedLoops() : 0, in ActOnOpenMPOrderedClause()
14038 DSAStack->setOrderedRegion(/*IsOrdered=*/true, NumForLoops, Clause); in ActOnOpenMPOrderedClause()
14182 DSAStack->setDefaultDSANone(KindKwLoc); in ActOnOpenMPDefaultClause()
14185 DSAStack->setDefaultDSAShared(KindKwLoc); in ActOnOpenMPDefaultClause()
14188 DSAStack->setDefaultDSAFirstPrivate(KindKwLoc); in ActOnOpenMPDefaultClause()
14289 DSAStack->setAssociatedLoops(SizeExprs.size()); in ActOnOpenMPSizesClause()
14510 DSAStack->getCurrentDirective(), OMPC_schedule, in ActOnOpenMPScheduleClause()
14660 DSAStack->setNowaitRegion(); in ActOnOpenMPNowaitClause()
14953 OpenMPDirectiveKind DKind = DSAStack->getCurrentDirective(); in ActOnOpenMPNovariantsClause()
14984 OpenMPDirectiveKind DKind = DSAStack->getCurrentDirective(); in ActOnOpenMPNocontextClause()
15006 OpenMPDirectiveKind DKind = DSAStack->getCurrentDirective(); in ActOnOpenMPFilterClause()
15268 DSAStackTy::DSAVarData DVar = DSAStack->getTopDSA(D, /*FromParent=*/false); in ActOnOpenMPPrivateClause()
15272 reportOriginalDsa(*this, DSAStack, D, DVar); in ActOnOpenMPPrivateClause()
15276 OpenMPDirectiveKind CurrDir = DSAStack->getCurrentDirective(); in ActOnOpenMPPrivateClause()
15303 if (DSAStack->checkMappableExprComponentListsForDecl( in ActOnOpenMPPrivateClause()
15314 reportOriginalDsa(*this, DSAStack, D, DVar); in ActOnOpenMPPrivateClause()
15342 DSAStack->addDSA(D, RefExpr->IgnoreParens(), OMPC_private, Ref); in ActOnOpenMPPrivateClause()
15389 SourceLocation ImplicitClauseLoc = DSAStack->getConstructLoc(); in ActOnOpenMPFirstprivateClause()
15429 DSAStack->getTopDSA(D, /*FromParent=*/false); in ActOnOpenMPFirstprivateClause()
15431 OpenMPDirectiveKind CurrDir = DSAStack->getCurrentDirective(); in ActOnOpenMPFirstprivateClause()
15447 reportOriginalDsa(*this, DSAStack, D, DVar); in ActOnOpenMPFirstprivateClause()
15467 reportOriginalDsa(*this, DSAStack, D, DVar); in ActOnOpenMPFirstprivateClause()
15490 DVar = DSAStack->getImplicitDSA(D, true); in ActOnOpenMPFirstprivateClause()
15498 reportOriginalDsa(*this, DSAStack, D, DVar); in ActOnOpenMPFirstprivateClause()
15514 DVar = DSAStack->hasInnermostDSA( in ActOnOpenMPFirstprivateClause()
15531 reportOriginalDsa(*this, DSAStack, D, DVar); in ActOnOpenMPFirstprivateClause()
15548 if (DSAStack->checkMappableExprComponentListsForDecl( in ActOnOpenMPFirstprivateClause()
15559 << getOpenMPDirectiveName(DSAStack->getCurrentDirective()); in ActOnOpenMPFirstprivateClause()
15560 reportOriginalDsa(*this, DSAStack, D, DVar); in ActOnOpenMPFirstprivateClause()
15568 isOpenMPTaskingDirective(DSAStack->getCurrentDirective())) { in ActOnOpenMPFirstprivateClause()
15571 << getOpenMPDirectiveName(DSAStack->getCurrentDirective()); in ActOnOpenMPFirstprivateClause()
15645 DSAStack->addDSA(D, RefExpr->IgnoreParens(), OMPC_firstprivate, Ref); in ActOnOpenMPFirstprivateClause()
15732 OpenMPDirectiveKind CurrDir = DSAStack->getCurrentDirective(); in ActOnOpenMPLastprivateClause()
15741 DSAStackTy::DSAVarData DVar = DSAStack->getTopDSA(D, /*FromParent=*/false); in ActOnOpenMPLastprivateClause()
15749 reportOriginalDsa(*this, DSAStack, D, DVar); in ActOnOpenMPLastprivateClause()
15763 DVar = DSAStack->getImplicitDSA(D, true); in ActOnOpenMPLastprivateClause()
15768 reportOriginalDsa(*this, DSAStack, D, DVar); in ActOnOpenMPLastprivateClause()
15818 BuildBinOp(DSAStack->getCurScope(), ELoc, BO_Assign, SimpleRefExpr, in ActOnOpenMPLastprivateClause()
15826 DSAStack->addDSA(D, RefExpr->IgnoreParens(), OMPC_lastprivate, Ref); in ActOnOpenMPLastprivateClause()
15872 DSAStackTy::DSAVarData DVar = DSAStack->getTopDSA(D, /*FromParent=*/false); in ActOnOpenMPSharedClause()
15877 reportOriginalDsa(*this, DSAStack, D, DVar); in ActOnOpenMPSharedClause()
15884 DSAStack->addDSA(D, RefExpr->IgnoreParens(), OMPC_shared, Ref); in ActOnOpenMPSharedClause()
17065 (DSAStack->getCurrentDirective() != OMPD_for && in ActOnOpenMPReductionClause()
17066 DSAStack->getCurrentDirective() != OMPD_for_simd && in ActOnOpenMPReductionClause()
17067 DSAStack->getCurrentDirective() != OMPD_simd && in ActOnOpenMPReductionClause()
17068 DSAStack->getCurrentDirective() != OMPD_parallel_for && in ActOnOpenMPReductionClause()
17069 DSAStack->getCurrentDirective() != OMPD_parallel_for_simd)) { in ActOnOpenMPReductionClause()
17075 if (actOnOMPReductionKindClause(*this, DSAStack, OMPC_reduction, VarList, in ActOnOpenMPReductionClause()
17096 if (actOnOMPReductionKindClause(*this, DSAStack, OMPC_task_reduction, VarList, in ActOnOpenMPTaskReductionClause()
17116 if (actOnOMPReductionKindClause(*this, DSAStack, OMPC_in_reduction, VarList, in ActOnOpenMPInReductionClause()
17217 DSAStackTy::DSAVarData DVar = DSAStack->getTopDSA(D, /*FromParent=*/false); in ActOnOpenMPLinearClause()
17221 reportOriginalDsa(*this, DSAStack, D, DVar); in ActOnOpenMPLinearClause()
17248 BuildBinOp(DSAStack->getCurScope(), ELoc, BO_Assign, in ActOnOpenMPLinearClause()
17265 DSAStack->addDSA(D, RefExpr->IgnoreParens(), OMPC_linear, Ref); in ActOnOpenMPLinearClause()
17461 if (const Expr *PrevRef = DSAStack->addUniqueAligned(D, SimpleRefExpr)) { in ActOnOpenMPAlignedClause()
17542 if (!DSAStack->isThreadPrivate(VD)) { in ActOnOpenMPCopyinClause()
17576 DSAStack->addDSA(VD, DE, OMPC_copyin); in ActOnOpenMPCopyinClause()
17621 if (!VD || !DSAStack->isThreadPrivate(VD)) { in ActOnOpenMPCopyprivateClause()
17623 DSAStack->getTopDSA(D, /*FromParent=*/false); in ActOnOpenMPCopyprivateClause()
17629 reportOriginalDsa(*this, DSAStack, D, DVar); in ActOnOpenMPCopyprivateClause()
17637 DVar = DSAStack->getImplicitDSA(D, false); in ActOnOpenMPCopyprivateClause()
17642 reportOriginalDsa(*this, DSAStack, D, DVar); in ActOnOpenMPCopyprivateClause()
17652 << getOpenMPDirectiveName(DSAStack->getCurrentDirective()); in ActOnOpenMPCopyprivateClause()
17677 DSAStack->getCurScope(), ELoc, BO_Assign, PseudoDstExpr, PseudoSrcExpr); in ActOnOpenMPCopyprivateClause()
17736 bool OMPDependTFound = findOMPDependT(*this, StartLoc, DSAStack); in ActOnOpenMPDepobjClause()
17744 !Context.typesAreCompatible(DSAStack->getOMPDependT(), Depobj->getType(), in ActOnOpenMPDepobjClause()
17763 if (DSAStack->getCurrentDirective() == OMPD_ordered && in ActOnOpenMPDependClause()
17769 if ((DSAStack->getCurrentDirective() != OMPD_ordered || in ActOnOpenMPDependClause()
17770 DSAStack->getCurrentDirective() == OMPD_depobj) && in ActOnOpenMPDependClause()
17774 DSAStack->getCurrentDirective() == OMPD_depobj) && in ActOnOpenMPDependClause()
17779 if (LangOpts.OpenMP < 50 || DSAStack->getCurrentDirective() == OMPD_depobj) in ActOnOpenMPDependClause()
17807 DSAStack->getParentOrderedRegionParam().first) { in ActOnOpenMPDependClause()
17823 if (DSAStack->getParentOrderedRegionParam().first && in ActOnOpenMPDependClause()
17888 DSAStack->getParentOrderedRegionParam().first && in ActOnOpenMPDependClause()
17889 DepCounter != DSAStack->isParentLoopControlVariable(D).first) { in ActOnOpenMPDependClause()
17891 DSAStack->getParentLoopControlVariable(DepCounter.getZExtValue()); in ActOnOpenMPDependClause()
17903 OMPDependTFound = findOMPDependT(*this, StartLoc, DSAStack, in ActOnOpenMPDependClause()
17913 !Context.hasSameUnqualifiedType(DSAStack->getOMPDependT(), in ActOnOpenMPDependClause()
17958 DSAStack->getOMPDependT().getTypePtr() == ExprTy.getTypePtr())) { in ActOnOpenMPDependClause()
17999 DSAStack->getParentOrderedRegionParam().first && in ActOnOpenMPDependClause()
18000 DSAStack->getParentLoopControlVariable(VarList.size() + 1)) { in ActOnOpenMPDependClause()
18002 << 1 << DSAStack->getParentLoopControlVariable(VarList.size() + 1); in ActOnOpenMPDependClause()
18012 DSAStack->isParentOrderedRegion()) in ActOnOpenMPDependClause()
18013 DSAStack->addDoacrossDependClause(C, OpsOffs); in ActOnOpenMPDependClause()
18045 OpenMPDirectiveKind DKind = DSAStack->getCurrentDirective(); in ActOnOpenMPDeviceClause()
19253 checkMappableExpressionList(*this, DSAStack, OMPC_map, MVLI, Locs.StartLoc, in ActOnOpenMPMapClause()
19620 processImplicitMapsWithDefaultMappers(*this, DSAStack, ClausesWithImplicit); in ActOnOpenMPDeclareMapperDirective()
19653 DSAStack->addDeclareMapperVarRef(E); in ActOnOpenMPDeclareMapperDirectiveVarDecl()
19659 const Expr *Ref = DSAStack->getDeclareMapperVarRef(); in isOpenMPDeclareMapperVarDeclAllowed()
19667 return cast<DeclRefExpr>(DSAStack->getDeclareMapperVarRef())->getDecl(); in getOpenMPDeclareMapperVarName()
19683 OpenMPDirectiveKind DKind = DSAStack->getCurrentDirective(); in ActOnOpenMPNumTeamsClause()
19710 OpenMPDirectiveKind DKind = DSAStack->getCurrentDirective(); in ActOnOpenMPThreadLimitClause()
19737 DSAStack->getCurrentDirective(), &CaptureRegion, &HelperValStmt)) in ActOnOpenMPPriorityClause()
19758 DSAStack->getCurrentDirective(), &CaptureRegion, &HelperValStmt)) in ActOnOpenMPGrainsizeClause()
19779 DSAStack->getCurrentDirective(), &CaptureRegion, &HelperValStmt)) in ActOnOpenMPNumTasksClause()
19821 if (!findOMPEventHandleT(*this, Evt->getExprLoc(), DSAStack)) in ActOnOpenMPDetachClause()
19837 if (!Context.hasSameUnqualifiedType(DSAStack->getOMPEventHandleT(), in ActOnOpenMPDetachClause()
19848 DSAStackTy::DSAVarData DVar = DSAStack->getTopDSA(VD, /*FromParent=*/false); in ActOnOpenMPDetachClause()
19854 reportOriginalDsa(*this, DSAStack, VD, DVar); in ActOnOpenMPDetachClause()
19900 DSAStack->getCurrentDirective(), OMPC_dist_schedule, in ActOnOpenMPDistScheduleClause()
19984 if (DSAStack->checkDefaultmapCategory(Kind)) { in ActOnOpenMPDefaultmapClause()
19991 DSAStack->setDefaultDMAAttr(M, OMPC_DEFAULTMAP_aggregate, StartLoc); in ActOnOpenMPDefaultmapClause()
19992 DSAStack->setDefaultDMAAttr(M, OMPC_DEFAULTMAP_scalar, StartLoc); in ActOnOpenMPDefaultmapClause()
19993 DSAStack->setDefaultDMAAttr(M, OMPC_DEFAULTMAP_pointer, StartLoc); in ActOnOpenMPDefaultmapClause()
19995 DSAStack->setDefaultDMAAttr(M, Kind, StartLoc); in ActOnOpenMPDefaultmapClause()
20162 if (DSAStack->isThreadPrivate(VD)) { in checkDeclIsAllowedInOpenMPTarget()
20164 reportOriginalDsa(*this, DSAStack, VD, DSAStack->getTopDSA(VD, false)); in checkDeclIsAllowedInOpenMPTarget()
20183 !checkValueDeclInTarget(SL, SR, *this, DSAStack, VD)) in checkDeclIsAllowedInOpenMPTarget()
20236 checkMappableExpressionList(*this, DSAStack, OMPC_to, MVLI, Locs.StartLoc, in ActOnOpenMPToClause()
20273 checkMappableExpressionList(*this, DSAStack, OMPC_from, MVLI, Locs.StartLoc, in ActOnOpenMPFromClause()
20351 DSAStack->addDSA(D, RefExpr->IgnoreParens(), OMPC_firstprivate, Ref); in ActOnOpenMPUseDevicePtrClause()
20399 DSAStack->addDSA(D, RefExpr->IgnoreParens(), OMPC_firstprivate, Ref); in ActOnOpenMPUseDeviceAddrClause()
20449 DSAStackTy::DSAVarData DVar = DSAStack->getTopDSA(D, /*FromParent=*/false); in ActOnOpenMPIsDevicePtrClause()
20454 << getOpenMPDirectiveName(DSAStack->getCurrentDirective()); in ActOnOpenMPIsDevicePtrClause()
20455 reportOriginalDsa(*this, DSAStack, D, DVar); in ActOnOpenMPIsDevicePtrClause()
20460 if (DSAStack->checkMappableExprComponentListsForDecl( in ActOnOpenMPIsDevicePtrClause()
20478 DSAStack->addMappableExpressionComponents( in ActOnOpenMPIsDevicePtrClause()
20510 if (!findOMPAllocatorHandleT(*this, Allocator->getExprLoc(), DSAStack)) in ActOnOpenMPAllocateClause()
20517 DSAStack->getOMPAllocatorHandleT(), in ActOnOpenMPAllocateClause()
20530 !DSAStack->hasRequiresDeclWithClause<OMPDynamicAllocatorsClause>()) in ActOnOpenMPAllocateClause()
20562 DSAStack->addInnerAllocatorExpr(Allocator); in ActOnOpenMPAllocateClause()
20588 DSAStack->addUniqueNontemporal(D, SimpleRefExpr)) { in ActOnOpenMPNontemporalClause()
20626 DSAStack->getTopDSA(D, /*FromParent=*/true); in ActOnOpenMPInclusiveClause()
20636 if (DSAStack->getParentDirective() != OMPD_unknown) in ActOnOpenMPInclusiveClause()
20637 DSAStack->markDeclAsUsedInScanDirective(D); in ActOnOpenMPInclusiveClause()
20666 OpenMPDirectiveKind ParentDirective = DSAStack->getParentDirective(); in ActOnOpenMPExclusiveClause()
20669 DVar = DSAStack->getTopDSA(D, /*FromParent=*/true); in ActOnOpenMPExclusiveClause()
20679 DSAStack->markDeclAsUsedInScanDirective(D); in ActOnOpenMPExclusiveClause()
20710 if (!findOMPAllocatorHandleT(*this, StartLoc, DSAStack)) in ActOnOpenMPUsesAllocatorClause()
20717 !findOMPAlloctraitT(*this, StartLoc, DSAStack)) in ActOnOpenMPUsesAllocatorClause()
20745 AllocatorExpr->getType(), DSAStack->getOMPAllocatorHandleT()) || in ActOnOpenMPUsesAllocatorClause()
20747 DSAStack->getOMPAllocatorHandleT(), in ActOnOpenMPUsesAllocatorClause()
20780 DSAStack->addUsesAllocatorsDecl( in ActOnOpenMPUsesAllocatorClause()
20804 DSAStack->getOMPAlloctraitT()) || in ActOnOpenMPUsesAllocatorClause()
20805 Context.typesAreCompatible(TraitTy, DSAStack->getOMPAlloctraitT(), in ActOnOpenMPUsesAllocatorClause()
20815 DSAStack->addUsesAllocatorsDecl( in ActOnOpenMPUsesAllocatorClause()