aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/LangRef.html12
-rw-r--r--include/llvm/LLVMContext.h2
-rw-r--r--lib/VMCore/LLVMContext.cpp6
-rw-r--r--lib/VMCore/Verifier.cpp12
-rw-r--r--test/Verifier/fpaccuracy.ll31
-rw-r--r--test/Verifier/fpmath.ll31
6 files changed, 47 insertions, 47 deletions
diff --git a/docs/LangRef.html b/docs/LangRef.html
index 4f6b137..c148211 100644
--- a/docs/LangRef.html
+++ b/docs/LangRef.html
@@ -103,7 +103,7 @@
<li><a href="#metadata">Metadata Nodes and Metadata Strings</a>
<ol>
<li><a href="#tbaa">'<tt>tbaa</tt>' Metadata</a></li>
- <li><a href="#fpaccuracy">'<tt>fpaccuracy</tt>' Metadata</a></li>
+ <li><a href="#fpmath">'<tt>fpmath</tt>' Metadata</a></li>
<li><a href="#range">'<tt>range</tt>' Metadata</a></li>
</ol>
</li>
@@ -3000,15 +3000,15 @@ call void @llvm.dbg.value(metadata !24, i64 0, metadata !25)
<!-- _______________________________________________________________________ -->
<h4>
- <a name="fpaccuracy">'<tt>fpaccuracy</tt>' Metadata</a>
+ <a name="fpmath">'<tt>fpmath</tt>' Metadata</a>
</h4>
<div>
-<p><tt>fpaccuracy</tt> metadata may be attached to any instruction of floating
- point type. It expresses the maximum relative error allowed in the result
- of that instruction, in ULPs, thus potentially allowing the compiler to use
- a more efficient but less accurate method of computing it.
+<p><tt>fpmath</tt> metadata may be attached to any instruction of floating point
+ type. It can be used to express the maximum acceptable relative error in the
+ result of that instruction, in ULPs, thus potentially allowing the compiler
+ to use a more efficient but less accurate method of computing it.
ULP is defined as follows:</p>
<blockquote>
diff --git a/include/llvm/LLVMContext.h b/include/llvm/LLVMContext.h
index 18adcd1..a8306a9 100644
--- a/include/llvm/LLVMContext.h
+++ b/include/llvm/LLVMContext.h
@@ -42,7 +42,7 @@ public:
MD_dbg = 0, // "dbg"
MD_tbaa = 1, // "tbaa"
MD_prof = 2, // "prof"
- MD_fpaccuracy = 3, // "fpaccuracy"
+ MD_fpmath = 3, // "fpmath"
MD_range = 4 // "range"
};
diff --git a/lib/VMCore/LLVMContext.cpp b/lib/VMCore/LLVMContext.cpp
index 68c5621..f07f0b3 100644
--- a/lib/VMCore/LLVMContext.cpp
+++ b/lib/VMCore/LLVMContext.cpp
@@ -44,9 +44,9 @@ LLVMContext::LLVMContext() : pImpl(new LLVMContextImpl(*this)) {
unsigned ProfID = getMDKindID("prof");
assert(ProfID == MD_prof && "prof kind id drifted"); (void)ProfID;
- // Create the 'fpaccuracy' metadata kind.
- unsigned FPAccuracyID = getMDKindID("fpaccuracy");
- assert(FPAccuracyID == MD_fpaccuracy && "fpaccuracy kind id drifted");
+ // Create the 'fpmath' metadata kind.
+ unsigned FPAccuracyID = getMDKindID("fpmath");
+ assert(FPAccuracyID == MD_fpmath && "fpmath kind id drifted");
(void)FPAccuracyID;
// Create the 'range' metadata kind.
diff --git a/lib/VMCore/Verifier.cpp b/lib/VMCore/Verifier.cpp
index 96492e4..ab79d8c 100644
--- a/lib/VMCore/Verifier.cpp
+++ b/lib/VMCore/Verifier.cpp
@@ -1653,16 +1653,16 @@ void Verifier::visitInstruction(Instruction &I) {
}
}
- if (MDNode *MD = I.getMetadata(LLVMContext::MD_fpaccuracy)) {
+ if (MDNode *MD = I.getMetadata(LLVMContext::MD_fpmath)) {
Assert1(I.getType()->isFPOrFPVectorTy(),
- "fpaccuracy requires a floating point result!", &I);
- Assert1(MD->getNumOperands() == 1, "fpaccuracy takes one operand!", &I);
+ "fpmath requires a floating point result!", &I);
+ Assert1(MD->getNumOperands() == 1, "fpmath takes one operand!", &I);
ConstantFP *Op = dyn_cast_or_null<ConstantFP>(MD->getOperand(0));
- Assert1(Op, "fpaccuracy ULPs not a floating point number!", &I);
+ Assert1(Op, "fpmath ULPs not a floating point number!", &I);
APFloat ULPs = Op->getValueAPF();
Assert1(ULPs.isNormal() || ULPs.isZero(),
- "fpaccuracy ULPs not a normal number!", &I);
- Assert1(!ULPs.isNegative(), "fpaccuracy ULPs is negative!", &I);
+ "fpmath ULPs not a normal number!", &I);
+ Assert1(!ULPs.isNegative(), "fpmath ULPs is negative!", &I);
}
MDNode *MD = I.getMetadata(LLVMContext::MD_range);
diff --git a/test/Verifier/fpaccuracy.ll b/test/Verifier/fpaccuracy.ll
deleted file mode 100644
index 2fefde0..0000000
--- a/test/Verifier/fpaccuracy.ll
+++ /dev/null
@@ -1,31 +0,0 @@
-; RUN: not llvm-as < %s |& FileCheck %s
-
-define void @foo(i32 %i, float %f, <2 x float> %g) {
- %s = add i32 %i, %i, !fpaccuracy !0
-; CHECK: fpaccuracy requires a floating point result!
- %t = fadd float %f, %f, !fpaccuracy !1
-; CHECK: fpaccuracy takes one operand!
- %u = fadd float %f, %f, !fpaccuracy !2
-; CHECK: fpaccuracy takes one operand!
- %v = fadd float %f, %f, !fpaccuracy !3
-; CHECK: fpaccuracy ULPs not a floating point number!
- %w = fadd float %f, %f, !fpaccuracy !0
-; Above line is correct.
- %w2 = fadd <2 x float> %g, %g, !fpaccuracy !0
-; Above line is correct.
- %x = fadd float %f, %f, !fpaccuracy !4
-; CHECK: fpaccuracy ULPs is negative!
- %y = fadd float %f, %f, !fpaccuracy !5
-; CHECK: fpaccuracy ULPs is negative!
- %z = fadd float %f, %f, !fpaccuracy !6
-; CHECK: fpaccuracy ULPs not a normal number!
- ret void
-}
-
-!0 = metadata !{ float 1.0 }
-!1 = metadata !{ }
-!2 = metadata !{ float 1.0, float 1.0 }
-!3 = metadata !{ i32 1 }
-!4 = metadata !{ float -1.0 }
-!5 = metadata !{ float -0.0 }
-!6 = metadata !{ float 0x7FFFFFFF00000000 }
diff --git a/test/Verifier/fpmath.ll b/test/Verifier/fpmath.ll
new file mode 100644
index 0000000..4cfed2a
--- /dev/null
+++ b/test/Verifier/fpmath.ll
@@ -0,0 +1,31 @@
+; RUN: not llvm-as < %s |& FileCheck %s
+
+define void @foo(i32 %i, float %f, <2 x float> %g) {
+ %s = add i32 %i, %i, !fpmath !0
+; CHECK: fpmath requires a floating point result!
+ %t = fadd float %f, %f, !fpmath !1
+; CHECK: fpmath takes one operand!
+ %u = fadd float %f, %f, !fpmath !2
+; CHECK: fpmath takes one operand!
+ %v = fadd float %f, %f, !fpmath !3
+; CHECK: fpmath ULPs not a floating point number!
+ %w = fadd float %f, %f, !fpmath !0
+; Above line is correct.
+ %w2 = fadd <2 x float> %g, %g, !fpmath !0
+; Above line is correct.
+ %x = fadd float %f, %f, !fpmath !4
+; CHECK: fpmath ULPs is negative!
+ %y = fadd float %f, %f, !fpmath !5
+; CHECK: fpmath ULPs is negative!
+ %z = fadd float %f, %f, !fpmath !6
+; CHECK: fpmath ULPs not a normal number!
+ ret void
+}
+
+!0 = metadata !{ float 1.0 }
+!1 = metadata !{ }
+!2 = metadata !{ float 1.0, float 1.0 }
+!3 = metadata !{ i32 1 }
+!4 = metadata !{ float -1.0 }
+!5 = metadata !{ float -0.0 }
+!6 = metadata !{ float 0x7FFFFFFF00000000 }