[llvm] r351369 - [Hexagon] Do not promote terminator instructions in Hexagon loop idioms
Krzysztof Parzyszek via llvm-commits
llvm-commits at lists.llvm.org
Wed Jan 16 11:40:28 PST 2019
Author: kparzysz
Date: Wed Jan 16 11:40:27 2019
New Revision: 351369
URL: http://llvm.org/viewvc/llvm-project?rev=351369&view=rev
Log:
[Hexagon] Do not promote terminator instructions in Hexagon loop idioms
Modified:
llvm/trunk/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
Modified: llvm/trunk/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp?rev=351369&r1=351368&r2=351369&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp (original)
+++ llvm/trunk/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp Wed Jan 16 11:40:27 2019
@@ -1001,6 +1001,7 @@ bool PolynomialMultiplyRecognize::isProm
void PolynomialMultiplyRecognize::promoteTo(Instruction *In,
IntegerType *DestTy, BasicBlock *LoopB) {
Type *OrigTy = In->getType();
+ assert(!OrigTy->isVoidTy() && "Invalid instruction to promote");
// Leave boolean values alone.
if (!In->getType()->isIntegerTy(1))
@@ -1081,7 +1082,8 @@ bool PolynomialMultiplyRecognize::promot
std::transform(LoopB->begin(), LoopB->end(), std::back_inserter(LoopIns),
[](Instruction &In) { return &In; });
for (Instruction *In : LoopIns)
- promoteTo(In, DestTy, LoopB);
+ if (!In->isTerminator())
+ promoteTo(In, DestTy, LoopB);
// Fix up the PHI nodes in the exit block.
Instruction *EndI = ExitB->getFirstNonPHI();
More information about the llvm-commits
mailing list