[PATCH] D100751: [VPlan] Properly handle sinking of replicate regions.
Ayal Zaks via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon May 3 00:41:26 PDT 2021
Ayal accepted this revision.
Ayal added a comment.
This revision is now accepted and ready to land.
This looks good, thanks for fixing, adding a couple of nits.
================
Comment at: llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:8966
VPRecipeBase *Sink = RecipeBuilder.getRecipe(Entry.first);
VPRecipeBase *Target = RecipeBuilder.getRecipe(Entry.second);
// If the target is in a replication region, make sure to move Sink to the
----------------
> I think we also need to deal with the case when the target is a
> replicate region also. I'll put up a patch once I constructed a test
> for that scenario.
Agreed. Worth adding an assert in the meanwhile?
================
Comment at: llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:9005
+ VPBB = SplitBlock;
+ continue;
+ }
----------------
better early-exit the simple `Sink->moveAfter(Target)` non-pred-rep case first?
================
Comment at: llvm/lib/Transforms/Vectorize/VPlan.cpp:407
+VPBasicBlock *VPBasicBlock::splitAt(iterator SplitAt) {
+ assert(SplitAt->getParent() == this);
+
----------------
error message
================
Comment at: llvm/lib/Transforms/Vectorize/VPlan.h:1513
+ /// Split current block at \p SplitAt by inserting a new block between the
+ /// current block and its successors and mobing all recipes starting at
+ /// SplitAt to the new block. Returns the new block.
----------------
mobing
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D100751/new/
https://reviews.llvm.org/D100751
More information about the llvm-commits
mailing list