Lines Matching refs:RefExpr
65 const Expr *RefExpr = nullptr; member
70 const Expr *RefExpr, DeclRefExpr *PrivateCopy, in DSAVarData()
72 : DKind(DKind), CKind(CKind), RefExpr(RefExpr), in DSAVarData()
85 llvm::PointerIntPair<const Expr *, 1, bool> RefExpr; member
112 void set(const Expr *RefExpr, SourceRange RR) { in set()
114 ReductionOp = RefExpr; in set()
775 DVar.RefExpr = Data.RefExpr.getPointer(); in getDSA()
822 DVar.RefExpr = nullptr; in getDSA()
904 Data.RefExpr.setPointer(E); in addDSA()
914 Data.RefExpr.setInt(/*IntVal=*/true); in addDSA()
920 Data.RefExpr.setPointerAndInt(E, IsLastprivate); in addDSA()
926 Data.RefExpr.setPointerAndInt(PrivateCopy, IsLastprivate); in addDSA()
1033 return DSAVarData(OMPD_taskgroup, OMPC_reduction, Data.RefExpr.getPointer(), in getTopMostTaskgroupReductionData()
1062 return DSAVarData(OMPD_taskgroup, OMPC_reduction, Data.RefExpr.getPointer(), in getTopMostTaskgroupReductionData()
1140 DVar.RefExpr = TI->getSecond().RefExpr.getPointer(); in getTopDSA()
1145 DVar.RefExpr = buildDeclRefExpr( in getTopDSA()
1149 addDSA(D, DVar.RefExpr, OMPC_threadprivate); in getTopDSA()
1161 DVar.RefExpr = buildDeclRefExpr( in getTopDSA()
1164 addDSA(D, DVar.RefExpr, OMPC_threadprivate); in getTopDSA()
1180 DVar.RefExpr = in getTopDSA()
1191 DVar.RefExpr = DSAIter->getSecond().RefExpr.getPointer(); in getTopDSA()
1198 DVar.RefExpr = in getTopDSA()
1222 if (DVarTemp.CKind != OMPC_unknown && DVarTemp.RefExpr) in getTopDSA()
1245 if (DVarTemp.CKind != OMPC_unknown && DVarTemp.RefExpr) in getTopDSA()
1262 DVar.RefExpr = Data.RefExpr.getPointer(); in getTopDSA()
1340 I->getSecond().RefExpr.getPointer() && in hasExplicitDSA()
1342 (!NotLastprivate || !I->getSecond().RefExpr.getInt())) in hasExplicitDSA()
2027 for (Expr *RefExpr : VarList) { in CheckOMPThreadPrivateDecl()
2028 auto *DE = cast<DeclRefExpr>(RefExpr); in CheckOMPThreadPrivateDecl()
2089 Vars.push_back(RefExpr); in CheckOMPThreadPrivateDecl()
2133 if (DVar.RefExpr) { in reportOriginalDsa()
2134 SemaRef.Diag(DVar.RefExpr->getExprLoc(), diag::note_omp_explicit_dsa) in reportOriginalDsa()
2234 if (DVar.RefExpr || !ImplicitDeclarations.insert(VD).second) in VisitDeclRefExpr()
2334 if (DVar.RefExpr || !ImplicitDeclarations.insert(FD).second) in VisitMemberExpr()
4601 if (!isOpenMPPrivate(Data.CKind) || !Data.RefExpr) in buildCounterVar()
4847 (DVar.CKind != OMPC_private || DVar.RefExpr != nullptr)) { in checkOpenMPIterationSpace()
4851 if (DVar.RefExpr == nullptr) in checkOpenMPIterationSpace()
9752 getPrivateItem(Sema &S, Expr *&RefExpr, SourceLocation &ELoc, in getPrivateItem() argument
9754 if (RefExpr->isTypeDependent() || RefExpr->isValueDependent() || in getPrivateItem()
9755 RefExpr->containsUnexpandedParameterPack()) in getPrivateItem()
9763 RefExpr = RefExpr->IgnoreParens(); in getPrivateItem()
9770 if (auto *ASE = dyn_cast_or_null<ArraySubscriptExpr>(RefExpr)) { in getPrivateItem()
9774 RefExpr = Base; in getPrivateItem()
9776 } else if (auto *OASE = dyn_cast_or_null<OMPArraySectionExpr>(RefExpr)) { in getPrivateItem()
9782 RefExpr = Base; in getPrivateItem()
9786 ELoc = RefExpr->getExprLoc(); in getPrivateItem()
9787 ERange = RefExpr->getSourceRange(); in getPrivateItem()
9788 RefExpr = RefExpr->IgnoreParenImpCasts(); in getPrivateItem()
9789 auto *DE = dyn_cast_or_null<DeclRefExpr>(RefExpr); in getPrivateItem()
9790 auto *ME = dyn_cast_or_null<MemberExpr>(RefExpr); in getPrivateItem()
9817 for (Expr *RefExpr : VarList) { in ActOnOpenMPPrivateClause()
9818 assert(RefExpr && "NULL expr in OpenMP private clause."); in ActOnOpenMPPrivateClause()
9821 Expr *SimpleRefExpr = RefExpr; in ActOnOpenMPPrivateClause()
9825 Vars.push_back(RefExpr); in ActOnOpenMPPrivateClause()
9923 *this, VDPrivate, RefExpr->getType().getUnqualifiedType(), ELoc); in ActOnOpenMPPrivateClause()
9928 DSAStack->addDSA(D, RefExpr->IgnoreParens(), OMPC_private, Ref); in ActOnOpenMPPrivateClause()
9930 ? RefExpr->IgnoreParens() in ActOnOpenMPPrivateClause()
9977 for (Expr *RefExpr : VarList) { in ActOnOpenMPFirstprivateClause()
9978 assert(RefExpr && "NULL expr in OpenMP firstprivate clause."); in ActOnOpenMPFirstprivateClause()
9981 Expr *SimpleRefExpr = RefExpr; in ActOnOpenMPFirstprivateClause()
9985 Vars.push_back(RefExpr); in ActOnOpenMPFirstprivateClause()
10029 DVar.RefExpr) { in ActOnOpenMPFirstprivateClause()
10048 if (!(IsConstant || (VD && VD->isStaticDataMember())) && !DVar.RefExpr && in ActOnOpenMPFirstprivateClause()
10172 buildVarDecl(*this, RefExpr->getExprLoc(), ElemType, D->getName()); in ActOnOpenMPFirstprivateClause()
10176 VarDecl *VDInitTemp = buildVarDecl(*this, RefExpr->getExprLoc(), ElemType, in ActOnOpenMPFirstprivateClause()
10191 VarDecl *VDInit = buildVarDecl(*this, RefExpr->getExprLoc(), Type, in ActOnOpenMPFirstprivateClause()
10193 VDInitRefExpr = buildDeclRefExpr(*this, VDInit, RefExpr->getType(), in ActOnOpenMPFirstprivateClause()
10194 RefExpr->getExprLoc()); in ActOnOpenMPFirstprivateClause()
10201 Diag(RefExpr->getExprLoc(), in ActOnOpenMPFirstprivateClause()
10208 *this, VDPrivate, RefExpr->getType().getUnqualifiedType(), in ActOnOpenMPFirstprivateClause()
10209 RefExpr->getExprLoc()); in ActOnOpenMPFirstprivateClause()
10220 DSAStack->addDSA(D, RefExpr->IgnoreParens(), OMPC_firstprivate, Ref); in ActOnOpenMPFirstprivateClause()
10222 ? RefExpr->IgnoreParens() in ActOnOpenMPFirstprivateClause()
10246 for (Expr *RefExpr : VarList) { in ActOnOpenMPLastprivateClause()
10247 assert(RefExpr && "NULL expr in OpenMP lastprivate clause."); in ActOnOpenMPLastprivateClause()
10250 Expr *SimpleRefExpr = RefExpr; in ActOnOpenMPLastprivateClause()
10254 Vars.push_back(RefExpr); in ActOnOpenMPLastprivateClause()
10298 (DVar.CKind != OMPC_private || DVar.RefExpr != nullptr)) { in ActOnOpenMPLastprivateClause()
10379 DSAStack->addDSA(D, RefExpr->IgnoreParens(), OMPC_lastprivate, Ref); in ActOnOpenMPLastprivateClause()
10381 ? RefExpr->IgnoreParens() in ActOnOpenMPLastprivateClause()
10402 for (Expr *RefExpr : VarList) { in ActOnOpenMPSharedClause()
10403 assert(RefExpr && "NULL expr in OpenMP lastprivate clause."); in ActOnOpenMPSharedClause()
10406 Expr *SimpleRefExpr = RefExpr; in ActOnOpenMPSharedClause()
10410 Vars.push_back(RefExpr); in ActOnOpenMPSharedClause()
10426 DVar.RefExpr) { in ActOnOpenMPSharedClause()
10436 DSAStack->addDSA(D, RefExpr->IgnoreParens(), OMPC_shared, Ref); in ActOnOpenMPSharedClause()
10438 ? RefExpr->IgnoreParens() in ActOnOpenMPSharedClause()
10456 if (DVar.CKind == OMPC_shared && !DVar.RefExpr) in VisitDeclRefExpr()
10929 for (Expr *RefExpr : VarList) { in actOnOMPReductionKindClause()
10930 assert(RefExpr && "nullptr expr in OpenMP reduction clause."); in actOnOMPReductionKindClause()
10943 Expr *SimpleRefExpr = RefExpr; in actOnOMPReductionKindClause()
10960 RD.push(RefExpr, ReductionOp); in actOnOMPReductionKindClause()
10968 auto *ASE = dyn_cast<ArraySubscriptExpr>(RefExpr->IgnoreParens()); in actOnOMPReductionKindClause()
10969 auto *OASE = dyn_cast<OMPArraySectionExpr>(RefExpr->IgnoreParens()); in actOnOMPReductionKindClause()
11031 if (DVar.RefExpr) in actOnOMPReductionKindClause()
11032 S.Diag(DVar.RefExpr->getExprLoc(), diag::note_omp_referenced); in actOnOMPReductionKindClause()
11072 RD.push(RefExpr, DeclareReductionRef.get()); in actOnOMPReductionKindClause()
11393 << ReductionIdRange << RefExpr->getSourceRange(); in actOnOMPReductionKindClause()
11397 << (IsParentBOK ? ParentBOKDSA.RefExpr in actOnOMPReductionKindClause()
11398 : ParentReductionOpDSA.RefExpr) in actOnOMPReductionKindClause()
11408 Expr *VarsExpr = RefExpr->IgnoreParens(); in actOnOMPReductionKindClause()
11413 RebuildToCapture.TransformExpr(RefExpr->IgnoreParens()).get(); in actOnOMPReductionKindClause()
11431 S.Diag(RefExpr->getExprLoc(), in actOnOMPReductionKindClause()
11433 << RefExpr->getSourceRange(); in actOnOMPReductionKindClause()
11443 Stack->addDSA(D, RefExpr->IgnoreParens(), OMPC_reduction, Ref); in actOnOMPReductionKindClause()
11579 for (Expr *RefExpr : VarList) { in ActOnOpenMPLinearClause()
11580 assert(RefExpr && "NULL expr in OpenMP linear clause."); in ActOnOpenMPLinearClause()
11583 Expr *SimpleRefExpr = RefExpr; in ActOnOpenMPLinearClause()
11587 Vars.push_back(RefExpr); in ActOnOpenMPLinearClause()
11603 if (DVar.RefExpr) { in ActOnOpenMPLinearClause()
11650 DSAStack->addDSA(D, RefExpr->IgnoreParens(), OMPC_linear, Ref); in ActOnOpenMPLinearClause()
11652 ? RefExpr->IgnoreParens() in ActOnOpenMPLinearClause()
11720 for (Expr *RefExpr : Clause.varlists()) { in FinishOpenMPLinearClause()
11723 Expr *SimpleRefExpr = RefExpr; in FinishOpenMPLinearClause()
11762 buildCounterUpdate(SemaRef, S, RefExpr->getExprLoc(), *CurPrivate, in FinishOpenMPLinearClause()
11773 buildCounterUpdate(SemaRef, S, RefExpr->getExprLoc(), CapturedRef, in FinishOpenMPLinearClause()
11800 for (Expr *RefExpr : VarList) { in ActOnOpenMPAlignedClause()
11801 assert(RefExpr && "NULL expr in OpenMP linear clause."); in ActOnOpenMPAlignedClause()
11804 Expr *SimpleRefExpr = RefExpr; in ActOnOpenMPAlignedClause()
11808 Vars.push_back(RefExpr); in ActOnOpenMPAlignedClause()
11847 (VD || !Ref) ? RefExpr->IgnoreParens() : Ref) in ActOnOpenMPAlignedClause()
11878 for (Expr *RefExpr : VarList) { in ActOnOpenMPCopyinClause()
11879 assert(RefExpr && "NULL expr in OpenMP copyin clause."); in ActOnOpenMPCopyinClause()
11880 if (isa<DependentScopeDeclRefExpr>(RefExpr)) { in ActOnOpenMPCopyinClause()
11882 Vars.push_back(RefExpr); in ActOnOpenMPCopyinClause()
11889 SourceLocation ELoc = RefExpr->getExprLoc(); in ActOnOpenMPCopyinClause()
11894 auto *DE = dyn_cast<DeclRefExpr>(RefExpr); in ActOnOpenMPCopyinClause()
11897 << 0 << RefExpr->getSourceRange(); in ActOnOpenMPCopyinClause()
11972 for (Expr *RefExpr : VarList) { in ActOnOpenMPCopyprivateClause()
11973 assert(RefExpr && "NULL expr in OpenMP linear clause."); in ActOnOpenMPCopyprivateClause()
11976 Expr *SimpleRefExpr = RefExpr; in ActOnOpenMPCopyprivateClause()
11980 Vars.push_back(RefExpr); in ActOnOpenMPCopyprivateClause()
11999 DVar.RefExpr) { in ActOnOpenMPCopyprivateClause()
12043 buildVarDecl(*this, RefExpr->getBeginLoc(), Type, ".copyprivate.src", in ActOnOpenMPCopyprivateClause()
12047 buildVarDecl(*this, RefExpr->getBeginLoc(), Type, ".copyprivate.dst", in ActOnOpenMPCopyprivateClause()
12063 VD ? RefExpr->IgnoreParens() in ActOnOpenMPCopyprivateClause()
12119 for (Expr *RefExpr : VarList) { in ActOnOpenMPDependClause()
12120 assert(RefExpr && "NULL expr in OpenMP shared clause."); in ActOnOpenMPDependClause()
12121 if (isa<DependentScopeDeclRefExpr>(RefExpr)) { in ActOnOpenMPDependClause()
12123 Vars.push_back(RefExpr); in ActOnOpenMPDependClause()
12127 SourceLocation ELoc = RefExpr->getExprLoc(); in ActOnOpenMPDependClause()
12128 Expr *SimpleExpr = RefExpr->IgnoreParenCasts(); in ActOnOpenMPDependClause()
12146 Vars.push_back(RefExpr); in ActOnOpenMPDependClause()
12178 Vars.push_back(RefExpr); in ActOnOpenMPDependClause()
12209 if (!RefExpr->IgnoreParenImpCasts()->isLValue() || in ActOnOpenMPDependClause()
12214 << RefExpr->getSourceRange(); in ActOnOpenMPDependClause()
12220 CreateBuiltinUnaryOp(ELoc, UO_AddrOf, RefExpr->IgnoreParenImpCasts()); in ActOnOpenMPDependClause()
12224 << RefExpr->getSourceRange(); in ActOnOpenMPDependClause()
12228 Vars.push_back(RefExpr->IgnoreParenImpCasts()); in ActOnOpenMPDependClause()
13770 for (Expr *RefExpr : VarList) { in ActOnOpenMPUseDevicePtrClause()
13771 assert(RefExpr && "NULL expr in OpenMP use_device_ptr clause."); in ActOnOpenMPUseDevicePtrClause()
13774 Expr *SimpleRefExpr = RefExpr; in ActOnOpenMPUseDevicePtrClause()
13778 MVLI.ProcessedVarList.push_back(RefExpr); in ActOnOpenMPUseDevicePtrClause()
13794 << 0 << RefExpr->getSourceRange(); in ActOnOpenMPUseDevicePtrClause()
13808 *this, VDPrivate, RefExpr->getType().getUnqualifiedType(), ELoc); in ActOnOpenMPUseDevicePtrClause()
13812 buildVarDecl(*this, RefExpr->getExprLoc(), Type, ".devptr.temp"); in ActOnOpenMPUseDevicePtrClause()
13814 *this, VDInit, RefExpr->getType(), RefExpr->getExprLoc()); in ActOnOpenMPUseDevicePtrClause()
13824 MVLI.ProcessedVarList.push_back(VD ? RefExpr->IgnoreParens() : Ref); in ActOnOpenMPUseDevicePtrClause()
13831 DSAStack->addDSA(D, RefExpr->IgnoreParens(), OMPC_firstprivate, Ref); in ActOnOpenMPUseDevicePtrClause()
13854 for (Expr *RefExpr : VarList) { in ActOnOpenMPIsDevicePtrClause()
13855 assert(RefExpr && "NULL expr in OpenMP is_device_ptr clause."); in ActOnOpenMPIsDevicePtrClause()
13858 Expr *SimpleRefExpr = RefExpr; in ActOnOpenMPIsDevicePtrClause()
13862 MVLI.ProcessedVarList.push_back(RefExpr); in ActOnOpenMPIsDevicePtrClause()
13873 << 0 << RefExpr->getSourceRange(); in ActOnOpenMPIsDevicePtrClause()
13898 Diag(ELoc, diag::err_omp_map_shared_storage) << RefExpr->getSourceRange(); in ActOnOpenMPIsDevicePtrClause()