[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