[llvm] [LV] Limits the splat operations be hoisted must not be defined by a recipe. (PR #117138)

Mel Chen via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 7 04:41:11 PST 2025


Mel-Chen wrote:

> How about adding a VPDominatorTree to VPTransformState, using that to check for dominance? VPlan's CFG shouldn't change during execution, so no need to worry about updates

@fhahn 40c2deeccbead6ad64559a0bcb7d5d5997550210
I have to update the VPDominatorTree before VPlan::execute since the plan will be changed after State was constructed: 
```
    // 2. Copy and widen instructions from the old loop into the new loop.
    BestVPlan.prepareToExecute(
        ILV.getTripCount(),
        ILV.getOrCreateVectorTripCount(ILV.LoopVectorPreHeader), State);
    replaceVPBBWithIRVPBB(VectorPH, State.CFG.PrevBB);  <--- This function will change CFG of plan

    BestVPlan.execute(&State);
```
And also, could you please take a look the issue about circular dependency between VPlan.h and VPlanDominatorTree.h?
Or could we proceed with using the pointer?

https://github.com/llvm/llvm-project/pull/117138


More information about the llvm-commits mailing list