diff options
Diffstat (limited to 'lib/Target')
-rw-r--r-- | lib/Target/Alpha/AlphaISelPattern.cpp | 9 | ||||
-rw-r--r-- | lib/Target/IA64/IA64ISelPattern.cpp | 7 | ||||
-rw-r--r-- | lib/Target/PowerPC/PPCISelDAGToDAG.cpp | 9 | ||||
-rw-r--r-- | lib/Target/PowerPC/PPCISelPattern.cpp | 6 | ||||
-rw-r--r-- | lib/Target/X86/X86ISelPattern.cpp | 13 |
5 files changed, 27 insertions, 17 deletions
diff --git a/lib/Target/Alpha/AlphaISelPattern.cpp b/lib/Target/Alpha/AlphaISelPattern.cpp index e559852d2b..cf5245d19c 100644 --- a/lib/Target/Alpha/AlphaISelPattern.cpp +++ b/lib/Target/Alpha/AlphaISelPattern.cpp @@ -1216,7 +1216,8 @@ unsigned AlphaISel::SelectExpr(SDOperand N) { return Result; case ISD::ConstantPool: - Tmp1 = cast<ConstantPoolSDNode>(N)->getIndex(); + Tmp1 = BB->getParent()->getConstantPool()-> + getConstantPoolIndex(cast<ConstantPoolSDNode>(N)->get()); AlphaLowering.restoreGP(BB); Tmp2 = MakeReg(MVT::i64); BuildMI(BB, Alpha::LDAHr, 2, Tmp2).addConstantPoolIndex(Tmp1) @@ -1285,16 +1286,18 @@ unsigned AlphaISel::SelectExpr(SDOperand N) { .addGlobalAddress(GASD->getGlobal()).addReg(Tmp1); } else if (ConstantPoolSDNode *CP = dyn_cast<ConstantPoolSDNode>(Address)) { + unsigned CPIdx = BB->getParent()->getConstantPool()-> + getConstantPoolIndex(CP->get()); AlphaLowering.restoreGP(BB); has_sym = true; Tmp1 = MakeReg(MVT::i64); - BuildMI(BB, Alpha::LDAHr, 2, Tmp1).addConstantPoolIndex(CP->getIndex()) + BuildMI(BB, Alpha::LDAHr, 2, Tmp1).addConstantPoolIndex(CPIdx) .addReg(Alpha::R29); if (EnableAlphaLSMark) BuildMI(BB, Alpha::MEMLABEL, 4).addImm(i).addImm(j).addImm(k) .addImm(getUID()); BuildMI(BB, GetRelVersion(Opc), 2, Result) - .addConstantPoolIndex(CP->getIndex()).addReg(Tmp1); + .addConstantPoolIndex(CPIdx).addReg(Tmp1); } else if(Address.getOpcode() == ISD::FrameIndex) { if (EnableAlphaLSMark) BuildMI(BB, Alpha::MEMLABEL, 4).addImm(i).addImm(j).addImm(k) diff --git a/lib/Target/IA64/IA64ISelPattern.cpp b/lib/Target/IA64/IA64ISelPattern.cpp index c0af342716..32aa94ac58 100644 --- a/lib/Target/IA64/IA64ISelPattern.cpp +++ b/lib/Target/IA64/IA64ISelPattern.cpp @@ -956,7 +956,8 @@ unsigned ISel::SelectExpr(SDOperand N) { } case ISD::ConstantPool: { - Tmp1 = cast<ConstantPoolSDNode>(N)->getIndex(); + Tmp1 = BB->getParent()->getConstantPool()-> + getConstantPoolIndex(cast<ConstantPoolSDNode>(N)->get()); IA64Lowering.restoreGP(BB); // FIXME: do i really need this? BuildMI(BB, IA64::ADD, 2, Result).addConstantPoolIndex(Tmp1) .addReg(IA64::r1); @@ -1974,10 +1975,12 @@ pC = pA OR pB BuildMI(BB, IA64::CMPNE, 2, Result).addReg(dummy3).addReg(IA64::r0); } } else if(ConstantPoolSDNode *CP = dyn_cast<ConstantPoolSDNode>(Address)) { + unsigned CPIdx = BB->getParent()->getConstantPool()-> + getConstantPoolIndex(cast<ConstantPoolSDNode>(N)->get()); Select(Chain); IA64Lowering.restoreGP(BB); unsigned dummy = MakeReg(MVT::i64); - BuildMI(BB, IA64::ADD, 2, dummy).addConstantPoolIndex(CP->getIndex()) + BuildMI(BB, IA64::ADD, 2, dummy).addConstantPoolIndex(CPIdx) .addReg(IA64::r1); // CPI+GP if(!isBool) BuildMI(BB, Opc, 1, Result).addReg(dummy); diff --git a/lib/Target/PowerPC/PPCISelDAGToDAG.cpp b/lib/Target/PowerPC/PPCISelDAGToDAG.cpp index 8c1e6cbf8b..2ae44ce461 100644 --- a/lib/Target/PowerPC/PPCISelDAGToDAG.cpp +++ b/lib/Target/PowerPC/PPCISelDAGToDAG.cpp @@ -15,7 +15,6 @@ #include "PowerPC.h" #include "PPC32TargetMachine.h" #include "PPC32ISelLowering.h" -#include "llvm/CodeGen/MachineConstantPool.h" #include "llvm/CodeGen/MachineInstrBuilder.h" #include "llvm/CodeGen/MachineFunction.h" #include "llvm/CodeGen/SSARegMap.h" @@ -696,11 +695,9 @@ SDOperand PPC32DAGToDAGISel::Select(SDOperand Op) { break; } case ISD::ConstantFP: { // FIXME: this should get sucked into the legalizer - MachineConstantPool *CP = CurDAG->getMachineFunction().getConstantPool(); Constant *CFP = ConstantFP::get(Type::FloatTy, cast<ConstantFPSDNode>(N)->getValue()); - SDOperand CPN = CurDAG->getConstantPool(CP->getConstantPoolIndex(CFP), - MVT::i32); + SDOperand CPN = CurDAG->getConstantPool(CFP, MVT::i32); SDOperand Tmp; if (PICEnabled) Tmp = CurDAG->getTargetNode(PPC::ADDIS, MVT::i32, getGlobalBaseReg(),CPN); @@ -723,8 +720,8 @@ SDOperand PPC32DAGToDAGISel::Select(SDOperand Op) { break; } case ISD::ConstantPool: { - unsigned CPIIdx = cast<ConstantPoolSDNode>(N)->getIndex(); - SDOperand Tmp, CPI = CurDAG->getTargetConstantPool(CPIIdx, MVT::i32); + Constant *C = cast<ConstantPoolSDNode>(N)->get(); + SDOperand Tmp, CPI = CurDAG->getTargetConstantPool(C, MVT::i32); if (PICEnabled) Tmp = CurDAG->getTargetNode(PPC::ADDIS, MVT::i32, getGlobalBaseReg(),CPI); else diff --git a/lib/Target/PowerPC/PPCISelPattern.cpp b/lib/Target/PowerPC/PPCISelPattern.cpp index 3187e4a349..7ff5eb9c13 100644 --- a/lib/Target/PowerPC/PPCISelPattern.cpp +++ b/lib/Target/PowerPC/PPCISelPattern.cpp @@ -866,7 +866,8 @@ unsigned ISel::SelectExpr(SDOperand N, bool Recording) { return Result; case ISD::ConstantPool: - Tmp1 = cast<ConstantPoolSDNode>(N)->getIndex(); + Tmp1 = BB->getParent()->getConstantPool()-> + getConstantPoolIndex(cast<ConstantPoolSDNode>(N)->get()); Tmp2 = MakeIntReg(); if (PICEnabled) BuildMI(BB, PPC::ADDIS, 2, Tmp2).addReg(getGlobalBaseReg()) @@ -927,7 +928,8 @@ unsigned ISel::SelectExpr(SDOperand N, bool Recording) { if (ConstantPoolSDNode *CP = dyn_cast<ConstantPoolSDNode>(Address)) { Tmp1 = MakeIntReg(); - int CPI = CP->getIndex(); + unsigned CPI = BB->getParent()->getConstantPool()-> + getConstantPoolIndex(CP->get()); if (PICEnabled) BuildMI(BB, PPC::ADDIS, 2, Tmp1).addReg(getGlobalBaseReg()) .addConstantPoolIndex(CPI); diff --git a/lib/Target/X86/X86ISelPattern.cpp b/lib/Target/X86/X86ISelPattern.cpp index ff0ee633ff..9f602418ab 100644 --- a/lib/Target/X86/X86ISelPattern.cpp +++ b/lib/Target/X86/X86ISelPattern.cpp @@ -2329,7 +2329,8 @@ unsigned ISel::SelectExpr(SDOperand N) { addFrameReference(BuildMI(BB, X86::LEA32r, 4, Result), (int)Tmp1); return Result; case ISD::ConstantPool: - Tmp1 = cast<ConstantPoolSDNode>(N)->getIndex(); + Tmp1 = BB->getParent()->getConstantPool()-> + getConstantPoolIndex(cast<ConstantPoolSDNode>(N)->get()); addConstantPoolReference(BuildMI(BB, X86::LEA32r, 4, Result), Tmp1); return Result; case ISD::ConstantFP: @@ -3317,8 +3318,10 @@ unsigned ISel::SelectExpr(SDOperand N) { } if (ConstantPoolSDNode *CP = dyn_cast<ConstantPoolSDNode>(N.getOperand(1))){ + unsigned CPIdx = BB->getParent()->getConstantPool()-> + getConstantPoolIndex(CP->get()); Select(N.getOperand(0)); - addConstantPoolReference(BuildMI(BB, Opc, 4, Result), CP->getIndex()); + addConstantPoolReference(BuildMI(BB, Opc, 4, Result), CPIdx); } else { X86AddressMode AM; @@ -3370,8 +3373,10 @@ unsigned ISel::SelectExpr(SDOperand N) { if (Node->getValueType(0) == MVT::f64) { assert(cast<VTSDNode>(Node->getOperand(3))->getVT() == MVT::f32 && "Bad EXTLOAD!"); - addConstantPoolReference(BuildMI(BB, X86::FLD32m, 4, Result), - CP->getIndex()); + unsigned CPIdx = BB->getParent()->getConstantPool()-> + getConstantPoolIndex(cast<ConstantPoolSDNode>(N)->get()); + + addConstantPoolReference(BuildMI(BB, X86::FLD32m, 4, Result), CPIdx); return Result; } |