diff options
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/include/llvm/IR/IRBuilder.h | 1 | ||||
| -rw-r--r-- | llvm/include/llvm/Target/TargetOptions.h | 2 | ||||
| -rw-r--r-- | llvm/unittests/IR/IRBuilderTest.cpp | 5 |
3 files changed, 5 insertions, 3 deletions
diff --git a/llvm/include/llvm/IR/IRBuilder.h b/llvm/include/llvm/IR/IRBuilder.h index 2d9c72108d3..24d39c2bc52 100644 --- a/llvm/include/llvm/IR/IRBuilder.h +++ b/llvm/include/llvm/IR/IRBuilder.h @@ -265,7 +265,6 @@ public: void setConstrainedFPCallAttr(CallInst *I) { if (!I->hasFnAttr(Attribute::StrictFP)) I->addAttribute(AttributeList::FunctionIndex, Attribute::StrictFP); - setConstrainedFPFunctionAttr(); } //===--------------------------------------------------------------------===// diff --git a/llvm/include/llvm/Target/TargetOptions.h b/llvm/include/llvm/Target/TargetOptions.h index c395e5bcecf..d1db4eceabb 100644 --- a/llvm/include/llvm/Target/TargetOptions.h +++ b/llvm/include/llvm/Target/TargetOptions.h @@ -107,7 +107,7 @@ namespace llvm { public: TargetOptions() : PrintMachineCode(false), UnsafeFPMath(false), NoInfsFPMath(false), - NoNaNsFPMath(false), NoTrappingFPMath(false), + NoNaNsFPMath(false), NoTrappingFPMath(true), NoSignedZerosFPMath(false), HonorSignDependentRoundingFPMathOption(false), NoZerosInBSS(false), GuaranteedTailCallOpt(false), StackSymbolOrdering(true), diff --git a/llvm/unittests/IR/IRBuilderTest.cpp b/llvm/unittests/IR/IRBuilderTest.cpp index d7712fda127..814da64c785 100644 --- a/llvm/unittests/IR/IRBuilderTest.cpp +++ b/llvm/unittests/IR/IRBuilderTest.cpp @@ -183,6 +183,8 @@ TEST_F(IRBuilderTest, ConstrainedFP) { // See if we get constrained intrinsics instead of non-constrained // instructions. Builder.setIsFPConstrained(true); + auto Parent = BB->getParent(); + Parent->addFnAttr(Attribute::StrictFP); V = Builder.CreateFAdd(V, V); ASSERT_TRUE(isa<IntrinsicInst>(V)); @@ -233,7 +235,8 @@ TEST_F(IRBuilderTest, ConstrainedFP) { AttributeSet CallAttrs = II->getAttributes().getFnAttributes(); EXPECT_EQ(CallAttrs.hasAttribute(Attribute::StrictFP), true); - // Verify attributes on the containing function are created automatically. + // Verify attributes on the containing function are created when requested. + Builder.setConstrainedFPFunctionAttr(); AttributeList Attrs = BB->getParent()->getAttributes(); AttributeSet FnAttrs = Attrs.getFnAttributes(); EXPECT_EQ(FnAttrs.hasAttribute(Attribute::StrictFP), true); |

