Lines Matching refs:ED

2738       const ExecutionDomainTy &ED = CB ? CEDMap[{CB, PRE}] : BEDMap[nullptr];  in manifest()  local
2739 if (!ED.IsReachedFromAlignedBarrierOnly || in manifest()
2740 ED.EncounteredNonLocalSideEffect) in manifest()
2742 if (!ED.EncounteredAssumes.empty() && !A.isModulePass()) in manifest()
2757 } else if (!ED.AlignedBarriers.empty()) { in manifest()
2759 SmallVector<CallBase *> Worklist(ED.AlignedBarriers.begin(), in manifest()
2760 ED.AlignedBarriers.end()); in manifest()
2786 if (!ED.EncounteredAssumes.empty() && (CB || !ED.AlignedBarriers.empty())) in manifest()
2787 for (auto *AssumeCB : ED.EncounteredAssumes) in manifest()
2808 mergeInPredecessorBarriersAndAssumptions(Attributor &A, ExecutionDomainTy &ED,
2814 bool mergeInPredecessor(Attributor &A, ExecutionDomainTy &ED,
2988 Attributor &A, ExecutionDomainTy &ED, const ExecutionDomainTy &PredED) { in mergeInPredecessorBarriersAndAssumptions() argument
2990 ED.addAssumeInst(A, *EA); in mergeInPredecessorBarriersAndAssumptions()
2993 ED.addAlignedBarrier(A, *AB); in mergeInPredecessorBarriersAndAssumptions()
2997 Attributor &A, ExecutionDomainTy &ED, const ExecutionDomainTy &PredED, in mergeInPredecessor() argument
3002 setAndRecord(ED.IsExecutedByInitialThreadOnly, in mergeInPredecessor()
3004 ED.IsExecutedByInitialThreadOnly)); in mergeInPredecessor()
3006 Changed |= setAndRecord(ED.IsReachedFromAlignedBarrierOnly, in mergeInPredecessor()
3007 ED.IsReachedFromAlignedBarrierOnly && in mergeInPredecessor()
3009 Changed |= setAndRecord(ED.EncounteredNonLocalSideEffect, in mergeInPredecessor()
3010 ED.EncounteredNonLocalSideEffect | in mergeInPredecessor()
3013 if (ED.IsReachedFromAlignedBarrierOnly) in mergeInPredecessor()
3014 mergeInPredecessorBarriersAndAssumptions(A, ED, PredED); in mergeInPredecessor()
3016 ED.clearAssumeInstAndAlignedBarriers(); in mergeInPredecessor()
3081 auto HandleAlignedBarrier = [&](CallBase &CB, ExecutionDomainTy &ED) { in updateImpl() argument
3085 Changed |= mergeInPredecessor(A, CallInED, ED); in updateImpl()
3088 ED.EncounteredNonLocalSideEffect = false; in updateImpl()
3089 ED.IsReachedFromAlignedBarrierOnly = true; in updateImpl()
3091 ED.clearAssumeInstAndAlignedBarriers(); in updateImpl()
3092 ED.addAlignedBarrier(A, CB); in updateImpl()
3094 Changed |= mergeInPredecessor(A, CallOutED, ED); in updateImpl()
3113 ExecutionDomainTy ED; in updateImpl() local
3116 Changed |= handleCallees(A, ED); in updateImpl()
3128 mergeInPredecessor(A, ED, BEDMap[PredBB], InitialEdgeOnly); in updateImpl()
3145 ED.addAssumeInst(A, *AI); in updateImpl()
3154 if (!ED.EncounteredNonLocalSideEffect) { in updateImpl()
3156 if (ED.IsReachedFromAlignedBarrierOnly) in updateImpl()
3194 HandleAlignedBarrier(*CB, ED); in updateImpl()
3202 if (!ED.EncounteredNonLocalSideEffect && in updateImpl()
3204 ED.EncounteredNonLocalSideEffect = true; in updateImpl()
3206 ED.IsReachedFromAlignedBarrierOnly = false; in updateImpl()
3215 Changed |= mergeInPredecessor(A, CallInED, ED); in updateImpl()
3226 ED.IsReachedFromAlignedBarrierOnly = in updateImpl()
3228 AlignedBarrierLastInBlock = ED.IsReachedFromAlignedBarrierOnly; in updateImpl()
3230 ED.EncounteredNonLocalSideEffect |= in updateImpl()
3233 ED.EncounteredNonLocalSideEffect = in updateImpl()
3241 mergeInPredecessorBarriersAndAssumptions(A, ED, CalleeED); in updateImpl()
3243 Changed |= mergeInPredecessor(A, CallOutED, ED); in updateImpl()
3248 ED.IsReachedFromAlignedBarrierOnly = false; in updateImpl()
3252 AlignedBarrierLastInBlock &= ED.IsReachedFromAlignedBarrierOnly; in updateImpl()
3253 ED.EncounteredNonLocalSideEffect |= !CB->doesNotAccessMemory(); in updateImpl()
3255 Changed |= mergeInPredecessor(A, CallOutED, ED); in updateImpl()
3286 if (!ED.EncounteredNonLocalSideEffect && in updateImpl()
3288 ED.EncounteredNonLocalSideEffect = true; in updateImpl()
3295 Changed |= mergeInPredecessor(A, InterProceduralED, ED); in updateImpl()
3300 Changed |= mergeInPredecessor(A, FnED, ED); in updateImpl()
3311 ED.IsReachingAlignedBarrierOnly = StoredED.IsReachingAlignedBarrierOnly & in updateImpl()
3318 if (ED.IsExecutedByInitialThreadOnly != in updateImpl()
3320 ED.IsReachedFromAlignedBarrierOnly != in updateImpl()
3322 ED.EncounteredNonLocalSideEffect != in updateImpl()
3327 StoredED = std::move(ED); in updateImpl()
3579 const auto *ED = A.getAAFor<AAExecutionDomain>( in updateImpl() local
3581 if (!ED || !ED->isExecutedByInitialThreadOnly(*CB)) in updateImpl()