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)); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits