[llvm-commits] [llvm] r154744 - in /llvm/trunk: docs/LangRef.html include/llvm/LLVMContext.h lib/VMCore/LLVMContext.cpp lib/VMCore/Verifier.cpp test/Verifier/fpaccuracy.ll test/Verifier/fpmath.ll

Duncan Sands baldrick at free.fr
Sat Apr 14 05:36:07 PDT 2012


Author: baldrick
Date: Sat Apr 14 07:36:06 2012
New Revision: 154744

URL: http://llvm.org/viewvc/llvm-project?rev=154744&view=rev
Log:
Rename "fpaccuracy" metadata to the more generic "fpmath".  That's because I'm
thinking of generalizing it to be able to specify other freedoms beyond accuracy
(such as that NaN's don't have to be respected).  I'd like the 3.1 release (the
first one with this metadata) to have the more generic name already rather than
having to auto-upgrade it in 3.2.

Added:
    llvm/trunk/test/Verifier/fpmath.ll
      - copied, changed from r154487, llvm/trunk/test/Verifier/fpaccuracy.ll
Removed:
    llvm/trunk/test/Verifier/fpaccuracy.ll
Modified:
    llvm/trunk/docs/LangRef.html
    llvm/trunk/include/llvm/LLVMContext.h
    llvm/trunk/lib/VMCore/LLVMContext.cpp
    llvm/trunk/lib/VMCore/Verifier.cpp

Modified: llvm/trunk/docs/LangRef.html
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/LangRef.html?rev=154744&r1=154743&r2=154744&view=diff
==============================================================================
--- llvm/trunk/docs/LangRef.html (original)
+++ llvm/trunk/docs/LangRef.html Sat Apr 14 07:36:06 2012
@@ -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 @@
 
 <!-- _______________________________________________________________________ -->
 <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>

Modified: llvm/trunk/include/llvm/LLVMContext.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/LLVMContext.h?rev=154744&r1=154743&r2=154744&view=diff
==============================================================================
--- llvm/trunk/include/llvm/LLVMContext.h (original)
+++ llvm/trunk/include/llvm/LLVMContext.h Sat Apr 14 07:36:06 2012
@@ -42,7 +42,7 @@
     MD_dbg = 0,  // "dbg"
     MD_tbaa = 1, // "tbaa"
     MD_prof = 2,  // "prof"
-    MD_fpaccuracy = 3,  // "fpaccuracy"
+    MD_fpmath = 3,  // "fpmath"
     MD_range = 4 // "range"
   };
   

Modified: llvm/trunk/lib/VMCore/LLVMContext.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/LLVMContext.cpp?rev=154744&r1=154743&r2=154744&view=diff
==============================================================================
--- llvm/trunk/lib/VMCore/LLVMContext.cpp (original)
+++ llvm/trunk/lib/VMCore/LLVMContext.cpp Sat Apr 14 07:36:06 2012
@@ -44,9 +44,9 @@
   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.

Modified: llvm/trunk/lib/VMCore/Verifier.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/Verifier.cpp?rev=154744&r1=154743&r2=154744&view=diff
==============================================================================
--- llvm/trunk/lib/VMCore/Verifier.cpp (original)
+++ llvm/trunk/lib/VMCore/Verifier.cpp Sat Apr 14 07:36:06 2012
@@ -1653,16 +1653,16 @@
     }
   }
 
-  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);

Removed: llvm/trunk/test/Verifier/fpaccuracy.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Verifier/fpaccuracy.ll?rev=154743&view=auto
==============================================================================
--- llvm/trunk/test/Verifier/fpaccuracy.ll (original)
+++ llvm/trunk/test/Verifier/fpaccuracy.ll (removed)
@@ -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 }

Copied: llvm/trunk/test/Verifier/fpmath.ll (from r154487, llvm/trunk/test/Verifier/fpaccuracy.ll)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Verifier/fpmath.ll?p2=llvm/trunk/test/Verifier/fpmath.ll&p1=llvm/trunk/test/Verifier/fpaccuracy.ll&r1=154487&r2=154744&rev=154744&view=diff
==============================================================================
--- llvm/trunk/test/Verifier/fpaccuracy.ll (original)
+++ llvm/trunk/test/Verifier/fpmath.ll Sat Apr 14 07:36:06 2012
@@ -1,24 +1,24 @@
 ; 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
+  %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, !fpaccuracy !0
+  %w2 = fadd <2 x float> %g, %g, !fpmath !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!
+  %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
 }
 





More information about the llvm-commits mailing list