From 8250016fb9491fcfde7fce05230d66e267944484 Mon Sep 17 00:00:00 2001 From: Duncan Sands Date: Tue, 10 Apr 2012 08:23:07 +0000 Subject: Express the number of ULPs in fpaccuracy metadata as a real rather than a rational number, eg as 2.5 rather than 5, 2. OK'd by Peter Collingbourne. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154388 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/CGExpr.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) (limited to 'lib/CodeGen/CGExpr.cpp') diff --git a/lib/CodeGen/CGExpr.cpp b/lib/CodeGen/CGExpr.cpp index 0efb50884c..dbf41f38b8 100644 --- a/lib/CodeGen/CGExpr.cpp +++ b/lib/CodeGen/CGExpr.cpp @@ -3001,16 +3001,13 @@ RValue CodeGenFunction::EmitAtomicExpr(AtomicExpr *E, llvm::Value *Dest) { return ConvertTempToRValue(*this, E->getType(), OrigDest); } -void CodeGenFunction::SetFPAccuracy(llvm::Value *Val, unsigned AccuracyN, - unsigned AccuracyD) { +void CodeGenFunction::SetFPAccuracy(llvm::Value *Val, float Accuracy) { assert(Val->getType()->isFPOrFPVectorTy()); - if (!AccuracyN || !isa(Val)) + if (Accuracy == 0.0 || !isa(Val)) return; - llvm::Value *Vals[2]; - Vals[0] = llvm::ConstantInt::get(Int32Ty, AccuracyN); - Vals[1] = llvm::ConstantInt::get(Int32Ty, AccuracyD); - llvm::MDNode *Node = llvm::MDNode::get(getLLVMContext(), Vals); + llvm::Value *ULPs = llvm::ConstantFP::get(Builder.getFloatTy(), Accuracy); + llvm::MDNode *Node = llvm::MDNode::get(getLLVMContext(), ULPs); cast(Val)->setMetadata(llvm::LLVMContext::MD_fpaccuracy, Node); -- cgit v1.2.3-70-g09d2