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

Andrew Lenharth alenhar2 at cs.uiuc.edu
Tue Oct 10 21:30:04 PDT 2006



Changes in directory llvm/lib/CodeGen/SelectionDAG:

LegalizeDAG.cpp updated: 1.408 -> 1.409
SelectionDAG.cpp updated: 1.346 -> 1.347
SelectionDAGISel.cpp updated: 1.286 -> 1.287
---
Log message:

Jimptables working again on alpha.

As a bonus, use the GOT node instead of the AlphaISD::GOT for internal stuff.



---
Diffs of the changes:  (+7 -13)

 LegalizeDAG.cpp      |   12 +-----------
 SelectionDAG.cpp     |    2 +-
 SelectionDAGISel.cpp |    6 +++++-
 3 files changed, 7 insertions(+), 13 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.408 llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.409
--- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.408	Tue Oct 10 13:54:19 2006
+++ llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp	Tue Oct 10 23:29:42 2006
@@ -534,6 +534,7 @@
   case ISD::SRCVALUE:
   case ISD::STRING:
   case ISD::CONDCODE:
+  case ISD::GLOBAL_OFFSET_TABLE:
     // Primitives must all be legal.
     assert(TLI.isOperationLegal(Node->getValueType(0), Node->getValueType(0)) &&
            "This must be legal!");
@@ -558,17 +559,6 @@
 #endif
     assert(0 && "Do not know how to legalize this operator!");
     abort();
-  case ISD::JumpTableRelocBase:
-    switch (TLI.getOperationAction(Node->getOpcode(), Node->getValueType(0))) {
-    case TargetLowering::Custom:
-      Tmp1 = TLI.LowerOperation(Op, DAG);
-      if (Tmp1.Val) Result = Tmp1;
-      break;
-    default:
-      Result = LegalizeOp(Node->getOperand(0));
-      break;
-    }
-    break;
   case ISD::GlobalAddress:
   case ISD::ExternalSymbol:
   case ISD::ConstantPool:


Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.346 llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.347
--- llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:1.346	Tue Oct 10 20:47:58 2006
+++ llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp	Tue Oct 10 23:29:42 2006
@@ -2454,7 +2454,7 @@
   case ISD::GlobalAddress: return "GlobalAddress";
   case ISD::FrameIndex:    return "FrameIndex";
   case ISD::JumpTable:     return "JumpTable";
-  case ISD::JumpTableRelocBase: return "JumpTableRelocBase";
+  case ISD::GLOBAL_OFFSET_TABLE: return "GLOBAL_OFFSET_TABLE";
   case ISD::ConstantPool:  return "ConstantPool";
   case ISD::ExternalSymbol: return "ExternalSymbol";
   case ISD::INTRINSIC_WO_CHAIN: {


Index: llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.286 llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.287
--- llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp:1.286	Tue Oct 10 22:58:02 2006
+++ llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp	Tue Oct 10 23:29:42 2006
@@ -864,7 +864,11 @@
     // For Pic, the sequence is:
     // BRIND(load(Jumptable + index) + RelocBase)
     // RelocBase is the JumpTable on PPC and X86, GOT on Alpha
-    SDOperand Reloc = DAG.getNode(ISD::JumpTableRelocBase, PTy, TAB);
+    SDOperand Reloc;
+    if (TLI.usesGlobalOffsetTable())
+      Reloc = DAG.getNode(ISD::GLOBAL_OFFSET_TABLE, PTy);
+    else
+      Reloc = TAB;
     ADD = DAG.getNode(ISD::ADD, PTy,
         ((PTy != MVT::i32) ? DAG.getNode(ISD::SIGN_EXTEND, PTy, LD) : LD), Reloc);
     DAG.setRoot(DAG.getNode(ISD::BRIND, MVT::Other, LD.getValue(1), ADD));






More information about the llvm-commits mailing list