[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp

Evan Cheng evan.cheng at apple.com
Fri Jan 5 15:33:59 PST 2007



Changes in directory llvm/lib/CodeGen/SelectionDAG:

LegalizeDAG.cpp updated: 1.453 -> 1.454
---
Log message:

Expand fcopysign to the bitwise sequence if select is marked as expensive.

---
Diffs of the changes:  (+6 -4)

 LegalizeDAG.cpp |   10 ++++++----
 1 files changed, 6 insertions(+), 4 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.453 llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.454
--- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.453	Fri Jan  5 15:31:51 2007
+++ llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp	Fri Jan  5 17:33:44 2007
@@ -2354,11 +2354,13 @@
       break;
     case TargetLowering::Legal: break;
     case TargetLowering::Expand: {
-      // If this target supports fabs/fneg natively, do this efficiently.
-      if (TLI.getOperationAction(ISD::FABS, Tmp1.getValueType()) ==
-                                 TargetLowering::Legal &&
+      // If this target supports fabs/fneg natively and select is cheap,
+      // do this efficiently.
+      if (!TLI.isSelectExpensive() &&
+          TLI.getOperationAction(ISD::FABS, Tmp1.getValueType()) ==
+          TargetLowering::Legal &&
           TLI.getOperationAction(ISD::FNEG, Tmp1.getValueType()) ==
-                                 TargetLowering::Legal) {
+          TargetLowering::Legal) {
         // Get the sign bit of the RHS.
         MVT::ValueType IVT = 
           Tmp2.getValueType() == MVT::f32 ? MVT::i32 : MVT::i64;






More information about the llvm-commits mailing list