[llvm-commits] CVS: llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp IA64ISelLowering.cpp

Duraid Madina duraid at octopus.com.au
Tue Nov 1 18:35:15 PST 2005



Changes in directory llvm/lib/Target/IA64:

IA64ISelDAGToDAG.cpp updated: 1.4 -> 1.5
IA64ISelLowering.cpp updated: 1.1 -> 1.2
---
Log message:

add support for loading FP constants +0.0 and +1.0 to the dag isel,
stop pretending -0.0 and -1.0 are machine constants



---
Diffs of the changes:  (+8 -3)

 IA64ISelDAGToDAG.cpp |    8 ++++++++
 IA64ISelLowering.cpp |    3 ---
 2 files changed, 8 insertions(+), 3 deletions(-)


Index: llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp
diff -u llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp:1.4 llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp:1.5
--- llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp:1.4	Mon Oct 31 23:46:16 2005
+++ llvm/lib/Target/IA64/IA64ISelDAGToDAG.cpp	Tue Nov  1 20:35:04 2005
@@ -321,6 +321,14 @@
 /* todo:
  * case ISD::DYNAMIC_STACKALLOC:
 */
+  case ISD::ConstantFP: {
+    if (cast<ConstantFPSDNode>(N)->isExactlyValue(+0.0))
+      return CurDAG->getRegister(IA64::F0, MVT::f64); // load 0.0
+    else if (cast<ConstantFPSDNode>(N)->isExactlyValue(+1.0))
+      return CurDAG->getRegister(IA64::F1, MVT::f64); // load 1.0
+    else
+      assert(0 && "Unexpected FP constant!");
+  }
 
   case ISD::FrameIndex: { // TODO: reduce creepyness
     int FI = cast<FrameIndexSDNode>(N)->getIndex();


Index: llvm/lib/Target/IA64/IA64ISelLowering.cpp
diff -u llvm/lib/Target/IA64/IA64ISelLowering.cpp:1.1 llvm/lib/Target/IA64/IA64ISelLowering.cpp:1.2
--- llvm/lib/Target/IA64/IA64ISelLowering.cpp:1.1	Fri Oct 28 12:46:36 2005
+++ llvm/lib/Target/IA64/IA64ISelLowering.cpp	Tue Nov  1 20:35:04 2005
@@ -80,9 +80,6 @@
 
       addLegalFPImmediate(+0.0);
       addLegalFPImmediate(+1.0);
-      addLegalFPImmediate(-0.0);
-      addLegalFPImmediate(-1.0);
-    
 }
 
 /// isFloatingPointZero - Return true if this is 0.0 or -0.0.






More information about the llvm-commits mailing list