summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2019-03-23 13:44:06 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2019-03-23 13:44:06 +0000
commitc7ba9555cf1f4eb49e03428f60f1dd2cdb5b78c4 (patch)
tree4459f6719003ef0df73fbac8381c9c0ec1716c1f
parent0125e4484e263e513af266516f011a9d6dfd157f (diff)
downloadbcm5719-llvm-c7ba9555cf1f4eb49e03428f60f1dd2cdb5b78c4.tar.gz
bcm5719-llvm-c7ba9555cf1f4eb49e03428f60f1dd2cdb5b78c4.zip
[SLPVectorizer] reorderInputsAccordingToOpcode - use InstructionState directly. NFCI.
llvm-svn: 356832
-rw-r--r--llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index 8865dc4dc0b..4ee7a2f891e 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -683,7 +683,8 @@ private:
/// \reorder commutative operands to get better probability of
/// generating vectorized code.
- void reorderInputsAccordingToOpcode(unsigned Opcode, ArrayRef<Value *> VL,
+ void reorderInputsAccordingToOpcode(const InstructionsState &S,
+ ArrayRef<Value *> VL,
SmallVectorImpl<Value *> &Left,
SmallVectorImpl<Value *> &Right);
struct TreeEntry {
@@ -1896,7 +1897,7 @@ void BoUpSLP::buildTree_rec(ArrayRef<Value *> VL, unsigned Depth,
// have the same opcode.
if (isa<BinaryOperator>(VL0) && VL0->isCommutative()) {
ValueList Left, Right;
- reorderInputsAccordingToOpcode(S.getOpcode(), VL, Left, Right);
+ reorderInputsAccordingToOpcode(S, VL, Left, Right);
UserTreeIdx.EdgeIdx = 0;
buildTree_rec(Left, Depth + 1, UserTreeIdx);
UserTreeIdx.EdgeIdx = 1;
@@ -2910,10 +2911,12 @@ static bool shouldReorderOperands(
return false;
}
-void BoUpSLP::reorderInputsAccordingToOpcode(unsigned Opcode,
+void BoUpSLP::reorderInputsAccordingToOpcode(const InstructionsState &S,
ArrayRef<Value *> VL,
SmallVectorImpl<Value *> &Left,
SmallVectorImpl<Value *> &Right) {
+ unsigned Opcode = S.getOpcode();
+
if (!VL.empty()) {
// Peel the first iteration out of the loop since there's nothing
// interesting to do anyway and it simplifies the checks in the loop.
OpenPOWER on IntegriCloud