[PATCH] D58887: PHI nodes are not `FPMathOperator` s
Sanjoy Das via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 4 14:14:10 PST 2019
sanjoy updated this revision to Diff 189203.
sanjoy added a comment.
Matt, I noticed a necessary change I had to make before landing this separately.
I didn't notice this because I was initially testing this combined with some
other changes.
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D58887/new/
https://reviews.llvm.org/D58887
Files:
include/llvm/IR/Operator.h
lib/Analysis/IVDescriptors.cpp
unittests/IR/InstructionsTest.cpp
Index: unittests/IR/InstructionsTest.cpp
===================================================================
--- unittests/IR/InstructionsTest.cpp
+++ unittests/IR/InstructionsTest.cpp
@@ -993,5 +993,14 @@
EXPECT_EQ(nullptr, Term->getNextNonDebugInstruction());
}
+TEST(InstructionsTest, PhiIsNotFPMathOperator) {
+ LLVMContext Context;
+ IRBuilder<> Builder(Context);
+ MDBuilder MDHelper(Context);
+ Instruction *I = Builder.CreatePHI(Builder.getDoubleTy(), 0);
+ EXPECT_FALSE(isa<FPMathOperator>(I));
+ I->deleteValue();
+}
+
} // end anonymous namespace
} // end namespace llvm
Index: lib/Analysis/IVDescriptors.cpp
===================================================================
--- lib/Analysis/IVDescriptors.cpp
+++ lib/Analysis/IVDescriptors.cpp
@@ -549,9 +549,8 @@
RecurrenceDescriptor::InstDesc
RecurrenceDescriptor::isRecurrenceInstr(Instruction *I, RecurrenceKind Kind,
InstDesc &Prev, bool HasFunNoNaNAttr) {
- bool FP = I->getType()->isFloatingPointTy();
Instruction *UAI = Prev.getUnsafeAlgebraInst();
- if (!UAI && FP && !I->isFast())
+ if (!UAI && isa<FPMathOperator>(I) && !I->isFast())
UAI = I; // Found an unsafe (unvectorizable) algebra instruction.
switch (I->getOpcode()) {
Index: include/llvm/IR/Operator.h
===================================================================
--- include/llvm/IR/Operator.h
+++ include/llvm/IR/Operator.h
@@ -379,6 +379,7 @@
case Instruction::ExtractElement:
case Instruction::ShuffleVector:
case Instruction::InsertElement:
+ case Instruction::PHI:
return false;
default:
return V->getType()->isFPOrFPVectorTy();
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D58887.189203.patch
Type: text/x-patch
Size: 1684 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190304/52d7af47/attachment.bin>
More information about the llvm-commits
mailing list