From: Simon Pilgrim Date: Sat, 23 Mar 2019 13:44:06 +0000 (+0000) Subject: [SLPVectorizer] reorderInputsAccordingToOpcode - use InstructionState directly. NFCI. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cda52c3638213fa540cc427fe67f17682d4098cb;p=llvm [SLPVectorizer] reorderInputsAccordingToOpcode - use InstructionState directly. NFCI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@356832 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Vectorize/SLPVectorizer.cpp b/lib/Transforms/Vectorize/SLPVectorizer.cpp index 8865dc4dc0b..4ee7a2f891e 100644 --- a/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ b/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 VL, + void reorderInputsAccordingToOpcode(const InstructionsState &S, + ArrayRef VL, SmallVectorImpl &Left, SmallVectorImpl &Right); struct TreeEntry { @@ -1896,7 +1897,7 @@ void BoUpSLP::buildTree_rec(ArrayRef VL, unsigned Depth, // have the same opcode. if (isa(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 VL, SmallVectorImpl &Left, SmallVectorImpl &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.