Lines Matching refs:ED

2737       const ExecutionDomainTy &ED = CB ? CEDMap[{CB, PRE}] : BEDMap[nullptr];  in manifest()  local
2738 if (!ED.IsReachedFromAlignedBarrierOnly || in manifest()
2739 ED.EncounteredNonLocalSideEffect) in manifest()
2741 if (!ED.EncounteredAssumes.empty() && !A.isModulePass()) in manifest()
2756 } else if (!ED.AlignedBarriers.empty()) { in manifest()
2758 SmallVector<CallBase *> Worklist(ED.AlignedBarriers.begin(), in manifest()
2759 ED.AlignedBarriers.end()); in manifest()
2785 if (!ED.EncounteredAssumes.empty() && (CB || !ED.AlignedBarriers.empty())) in manifest()
2786 for (auto *AssumeCB : ED.EncounteredAssumes) in manifest()
2807 mergeInPredecessorBarriersAndAssumptions(Attributor &A, ExecutionDomainTy &ED,
2813 bool mergeInPredecessor(Attributor &A, ExecutionDomainTy &ED,
2987 Attributor &A, ExecutionDomainTy &ED, const ExecutionDomainTy &PredED) { in mergeInPredecessorBarriersAndAssumptions() argument
2989 ED.addAssumeInst(A, *EA); in mergeInPredecessorBarriersAndAssumptions()
2992 ED.addAlignedBarrier(A, *AB); in mergeInPredecessorBarriersAndAssumptions()
2996 Attributor &A, ExecutionDomainTy &ED, const ExecutionDomainTy &PredED, in mergeInPredecessor() argument
3001 setAndRecord(ED.IsExecutedByInitialThreadOnly, in mergeInPredecessor()
3003 ED.IsExecutedByInitialThreadOnly)); in mergeInPredecessor()
3005 Changed |= setAndRecord(ED.IsReachedFromAlignedBarrierOnly, in mergeInPredecessor()
3006 ED.IsReachedFromAlignedBarrierOnly && in mergeInPredecessor()
3008 Changed |= setAndRecord(ED.EncounteredNonLocalSideEffect, in mergeInPredecessor()
3009 ED.EncounteredNonLocalSideEffect | in mergeInPredecessor()
3012 if (ED.IsReachedFromAlignedBarrierOnly) in mergeInPredecessor()
3013 mergeInPredecessorBarriersAndAssumptions(A, ED, PredED); in mergeInPredecessor()
3015 ED.clearAssumeInstAndAlignedBarriers(); in mergeInPredecessor()
3080 auto HandleAlignedBarrier = [&](CallBase &CB, ExecutionDomainTy &ED) { in updateImpl() argument
3084 Changed |= mergeInPredecessor(A, CallInED, ED); in updateImpl()
3087 ED.EncounteredNonLocalSideEffect = false; in updateImpl()
3088 ED.IsReachedFromAlignedBarrierOnly = true; in updateImpl()
3090 ED.clearAssumeInstAndAlignedBarriers(); in updateImpl()
3091 ED.addAlignedBarrier(A, CB); in updateImpl()
3093 Changed |= mergeInPredecessor(A, CallOutED, ED); in updateImpl()
3112 ExecutionDomainTy ED; in updateImpl() local
3115 Changed |= handleCallees(A, ED); in updateImpl()
3127 mergeInPredecessor(A, ED, BEDMap[PredBB], InitialEdgeOnly); in updateImpl()
3144 ED.addAssumeInst(A, *AI); in updateImpl()
3153 if (!ED.EncounteredNonLocalSideEffect) { in updateImpl()
3155 if (ED.IsReachedFromAlignedBarrierOnly) in updateImpl()
3193 HandleAlignedBarrier(*CB, ED); in updateImpl()
3201 if (!ED.EncounteredNonLocalSideEffect && in updateImpl()
3203 ED.EncounteredNonLocalSideEffect = true; in updateImpl()
3205 ED.IsReachedFromAlignedBarrierOnly = false; in updateImpl()
3214 Changed |= mergeInPredecessor(A, CallInED, ED); in updateImpl()
3225 ED.IsReachedFromAlignedBarrierOnly = in updateImpl()
3227 AlignedBarrierLastInBlock = ED.IsReachedFromAlignedBarrierOnly; in updateImpl()
3229 ED.EncounteredNonLocalSideEffect |= in updateImpl()
3232 ED.EncounteredNonLocalSideEffect = in updateImpl()
3240 mergeInPredecessorBarriersAndAssumptions(A, ED, CalleeED); in updateImpl()
3242 Changed |= mergeInPredecessor(A, CallOutED, ED); in updateImpl()
3247 ED.IsReachedFromAlignedBarrierOnly = false; in updateImpl()
3251 AlignedBarrierLastInBlock &= ED.IsReachedFromAlignedBarrierOnly; in updateImpl()
3252 ED.EncounteredNonLocalSideEffect |= !CB->doesNotAccessMemory(); in updateImpl()
3254 Changed |= mergeInPredecessor(A, CallOutED, ED); in updateImpl()
3285 if (!ED.EncounteredNonLocalSideEffect && in updateImpl()
3287 ED.EncounteredNonLocalSideEffect = true; in updateImpl()
3294 Changed |= mergeInPredecessor(A, InterProceduralED, ED); in updateImpl()
3299 Changed |= mergeInPredecessor(A, FnED, ED); in updateImpl()
3310 ED.IsReachingAlignedBarrierOnly = StoredED.IsReachingAlignedBarrierOnly & in updateImpl()
3317 if (ED.IsExecutedByInitialThreadOnly != in updateImpl()
3319 ED.IsReachedFromAlignedBarrierOnly != in updateImpl()
3321 ED.EncounteredNonLocalSideEffect != in updateImpl()
3326 StoredED = std::move(ED); in updateImpl()
3578 const auto *ED = A.getAAFor<AAExecutionDomain>( in updateImpl() local
3580 if (!ED || !ED->isExecutedByInitialThreadOnly(*CB)) in updateImpl()