[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