diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2019-03-23 13:44:06 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2019-03-23 13:44:06 +0000 |
commit | c7ba9555cf1f4eb49e03428f60f1dd2cdb5b78c4 (patch) | |
tree | 4459f6719003ef0df73fbac8381c9c0ec1716c1f /llvm/lib | |
parent | 0125e4484e263e513af266516f011a9d6dfd157f (diff) | |
download | bcm5719-llvm-c7ba9555cf1f4eb49e03428f60f1dd2cdb5b78c4.tar.gz bcm5719-llvm-c7ba9555cf1f4eb49e03428f60f1dd2cdb5b78c4.zip |
[SLPVectorizer] reorderInputsAccordingToOpcode - use InstructionState directly. NFCI.
llvm-svn: 356832
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | 9 |
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. |