[PATCH] D73480: [VectorCombine] new IR transform pass for partial vector ops

Sanjay Patel via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 30 09:44:22 PDT 2020


spatel marked an inline comment as done.
spatel added inline comments.


================
Comment at: llvm/lib/Transforms/Vectorize/VectorCombine.cpp:96
+    //       iteratively in this loop rather than waiting until the end.
+    for (Instruction &I : make_range(BB.rbegin(), BB.rend())) {
+      MadeChange |= foldExtractCmp(I, TTI);
----------------
xbolva00 wrote:
> spatel wrote:
> > spatel wrote:
> > > xbolva00 wrote:
> > > > xbolva00 wrote:
> > > > > Skip debug insn?
> > > > > 
> > > > > DbgInfoIntrinsic?
> > > > And skip “cold” blocks?
> > > I don't think there's enough going on in this pass yet to make this measurable, but:
> > > rGfc3cc8a4b074
> > Is there a pass that we can view as a template for this?
> https://llvm.org/doxygen/classllvm_1_1ProfileSummaryInfo.html
> 
> IsColdBlock/IsFunctionEntryCold are probably the helpers we need.
Thinking about this 1 a bit more, it's not clear to me that we want to predicate on hot/cold. This pass can reduce code size, so the transforms are still potentially beneficial. 

Also, I don't see that kind of restriction on any other combiner passes (or other IR passes in general?), so raise this on llvm-dev, so we have a consistent implementation across different passes?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73480/new/

https://reviews.llvm.org/D73480





More information about the llvm-commits mailing list