[PATCH] D77973: [VPlan] Move widening check for non-memory/non-calls to function (NFC).
Ayal Zaks via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 13 03:12:22 PDT 2020
Ayal accepted this revision.
Ayal added a comment.
This revision is now accepted and ready to land.
Thanks for cleaning this up! Final couple of nits.
================
Comment at: llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:6940
+bool VPRecipeBuilder::shouldWiden(Instruction *I, VFRange &Range) const {
+ assert(!isa<PHINode>(I) && "PHIs should have been handled earlier");
+ // Instruction should be widened, unless it is scalar after vectorization,
----------------
Retain the !isa<Call, Load, Store> alongside !isa<PHI>?
To avoid using this method for such opcodes, as their widening decision is more complex.
================
Comment at: llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:6946
+ !CM.isProfitableToScalarize(I, VF) &&
+ !CM.isScalarWithPredication(I, VF);
};
----------------
More natural to reverse the conditions and rename willWiden to willScalarize, returning !getDecisionAndClampRange(willScalarize, Range)?
================
Comment at: llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:6969
case Instruction::BitCast:
case Instruction::Br:
case Instruction::FAdd:
----------------
Branches should also find their way out of IsVectorizableOpcode and into an assert; no recipes are created for them.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D77973/new/
https://reviews.llvm.org/D77973
More information about the llvm-commits
mailing list