mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 12:12:47 +01:00
Propagate debug loc.
llvm-svn: 107710
This commit is contained in:
parent
084a11cb59
commit
7ab104353b
@ -348,13 +348,13 @@ public:
|
||||
SDValue getTargetConstantFP(const ConstantFP &Val, EVT VT) {
|
||||
return getConstantFP(Val, VT, true);
|
||||
}
|
||||
SDValue getGlobalAddress(const GlobalValue *GV, EVT VT,
|
||||
SDValue getGlobalAddress(const GlobalValue *GV, DebugLoc DL, EVT VT,
|
||||
int64_t offset = 0, bool isTargetGA = false,
|
||||
unsigned char TargetFlags = 0);
|
||||
SDValue getTargetGlobalAddress(const GlobalValue *GV, EVT VT,
|
||||
SDValue getTargetGlobalAddress(const GlobalValue *GV, DebugLoc DL, EVT VT,
|
||||
int64_t offset = 0,
|
||||
unsigned char TargetFlags = 0) {
|
||||
return getGlobalAddress(GV, VT, offset, true, TargetFlags);
|
||||
return getGlobalAddress(GV, DL, VT, offset, true, TargetFlags);
|
||||
}
|
||||
SDValue getFrameIndex(int FI, EVT VT, bool isTarget = false);
|
||||
SDValue getTargetFrameIndex(int FI, EVT VT) {
|
||||
|
@ -1154,7 +1154,7 @@ class GlobalAddressSDNode : public SDNode {
|
||||
int64_t Offset;
|
||||
unsigned char TargetFlags;
|
||||
friend class SelectionDAG;
|
||||
GlobalAddressSDNode(unsigned Opc, const GlobalValue *GA, EVT VT,
|
||||
GlobalAddressSDNode(unsigned Opc, DebugLoc DL, const GlobalValue *GA, EVT VT,
|
||||
int64_t o, unsigned char TargetFlags);
|
||||
public:
|
||||
|
||||
|
@ -1315,7 +1315,7 @@ SDValue DAGCombiner::visitADD(SDNode *N) {
|
||||
if (GlobalAddressSDNode *GA = dyn_cast<GlobalAddressSDNode>(N0))
|
||||
if (!LegalOperations && TLI.isOffsetFoldingLegal(GA) && N1C &&
|
||||
GA->getOpcode() == ISD::GlobalAddress)
|
||||
return DAG.getGlobalAddress(GA->getGlobal(), VT,
|
||||
return DAG.getGlobalAddress(GA->getGlobal(), N1C->getDebugLoc(), VT,
|
||||
GA->getOffset() +
|
||||
(uint64_t)N1C->getSExtValue());
|
||||
// fold ((c1-A)+c2) -> (c1+c2)-A
|
||||
@ -1552,7 +1552,7 @@ SDValue DAGCombiner::visitSUB(SDNode *N) {
|
||||
if (!LegalOperations && TLI.isOffsetFoldingLegal(GA)) {
|
||||
// fold (sub Sym, c) -> Sym-c
|
||||
if (N1C && GA->getOpcode() == ISD::GlobalAddress)
|
||||
return DAG.getGlobalAddress(GA->getGlobal(), VT,
|
||||
return DAG.getGlobalAddress(GA->getGlobal(), N1C->getDebugLoc(), VT,
|
||||
GA->getOffset() -
|
||||
(uint64_t)N1C->getSExtValue());
|
||||
// fold (sub Sym+c1, Sym+c2) -> c1-c2
|
||||
|
@ -975,7 +975,7 @@ SDValue SelectionDAG::getConstantFP(double Val, EVT VT, bool isTarget) {
|
||||
}
|
||||
}
|
||||
|
||||
SDValue SelectionDAG::getGlobalAddress(const GlobalValue *GV,
|
||||
SDValue SelectionDAG::getGlobalAddress(const GlobalValue *GV, DebugLoc DL,
|
||||
EVT VT, int64_t Offset,
|
||||
bool isTargetGA,
|
||||
unsigned char TargetFlags) {
|
||||
@ -1010,7 +1010,7 @@ SDValue SelectionDAG::getGlobalAddress(const GlobalValue *GV,
|
||||
if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
|
||||
return SDValue(E, 0);
|
||||
|
||||
SDNode *N = new (NodeAllocator) GlobalAddressSDNode(Opc, GV, VT,
|
||||
SDNode *N = new (NodeAllocator) GlobalAddressSDNode(Opc, DL, GV, VT,
|
||||
Offset, TargetFlags);
|
||||
CSEMap.InsertNode(N, IP);
|
||||
AllNodes.push_back(N);
|
||||
@ -5375,9 +5375,10 @@ HandleSDNode::~HandleSDNode() {
|
||||
DropOperands();
|
||||
}
|
||||
|
||||
GlobalAddressSDNode::GlobalAddressSDNode(unsigned Opc, const GlobalValue *GA,
|
||||
GlobalAddressSDNode::GlobalAddressSDNode(unsigned Opc, DebugLoc DL,
|
||||
const GlobalValue *GA,
|
||||
EVT VT, int64_t o, unsigned char TF)
|
||||
: SDNode(Opc, DebugLoc(), getSDVTList(VT)), Offset(o), TargetFlags(TF) {
|
||||
: SDNode(Opc, DL, getSDVTList(VT)), Offset(o), TargetFlags(TF) {
|
||||
TheGlobal = GA;
|
||||
}
|
||||
|
||||
|
@ -852,7 +852,7 @@ SDValue SelectionDAGBuilder::getValueImpl(const Value *V) {
|
||||
return DAG.getConstant(*CI, VT);
|
||||
|
||||
if (const GlobalValue *GV = dyn_cast<GlobalValue>(C))
|
||||
return DAG.getGlobalAddress(GV, VT);
|
||||
return DAG.getGlobalAddress(GV, getCurDebugLoc(), VT);
|
||||
|
||||
if (isa<ConstantPointerNull>(C))
|
||||
return DAG.getConstant(0, TLI.getPointerTy());
|
||||
|
@ -2414,7 +2414,8 @@ void TargetLowering::LowerAsmOperandForConstraint(SDValue Op,
|
||||
if (ConstraintLetter != 'n') {
|
||||
int64_t Offs = GA->getOffset();
|
||||
if (C) Offs += C->getZExtValue();
|
||||
Ops.push_back(DAG.getTargetGlobalAddress(GA->getGlobal(),
|
||||
Ops.push_back(DAG.getTargetGlobalAddress(GA->getGlobal(),
|
||||
C->getDebugLoc(),
|
||||
Op.getValueType(), Offs));
|
||||
return;
|
||||
}
|
||||
|
@ -1238,7 +1238,7 @@ ARMTargetLowering::LowerCall(SDValue Chain, SDValue Callee,
|
||||
Callee = DAG.getNode(ARMISD::PIC_ADD, dl,
|
||||
getPointerTy(), Callee, PICLabel);
|
||||
} else
|
||||
Callee = DAG.getTargetGlobalAddress(GV, getPointerTy());
|
||||
Callee = DAG.getTargetGlobalAddress(GV, dl, getPointerTy());
|
||||
} else if (ExternalSymbolSDNode *S = dyn_cast<ExternalSymbolSDNode>(Callee)) {
|
||||
isDirect = true;
|
||||
bool isStub = Subtarget->isTargetDarwin() &&
|
||||
@ -1769,7 +1769,7 @@ SDValue ARMTargetLowering::LowerGlobalAddressELF(SDValue Op,
|
||||
// pair. This is always cheaper.
|
||||
if (Subtarget->useMovt()) {
|
||||
return DAG.getNode(ARMISD::Wrapper, dl, PtrVT,
|
||||
DAG.getTargetGlobalAddress(GV, PtrVT));
|
||||
DAG.getTargetGlobalAddress(GV, dl, PtrVT));
|
||||
} else {
|
||||
SDValue CPAddr = DAG.getTargetConstantPool(GV, PtrVT, 4);
|
||||
CPAddr = DAG.getNode(ARMISD::Wrapper, dl, MVT::i32, CPAddr);
|
||||
|
@ -643,10 +643,12 @@ SDValue AlphaTargetLowering::LowerOperation(SDValue Op,
|
||||
case ISD::GlobalAddress: {
|
||||
GlobalAddressSDNode *GSDN = cast<GlobalAddressSDNode>(Op);
|
||||
const GlobalValue *GV = GSDN->getGlobal();
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, MVT::i64, GSDN->getOffset());
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, dl, MVT::i64,
|
||||
GSDN->getOffset());
|
||||
// FIXME there isn't really any debug info here
|
||||
|
||||
// if (!GV->hasWeakLinkage() && !GV->isDeclaration() && !GV->hasLinkOnceLinkage()) {
|
||||
// if (!GV->hasWeakLinkage() && !GV->isDeclaration()
|
||||
// && !GV->hasLinkOnceLinkage()) {
|
||||
if (GV->hasLocalLinkage()) {
|
||||
SDValue Hi = DAG.getNode(AlphaISD::GPRelHi, dl, MVT::i64, GA,
|
||||
DAG.getGLOBAL_OFFSET_TABLE(MVT::i64));
|
||||
|
@ -143,7 +143,7 @@ SDValue BlackfinTargetLowering::LowerGlobalAddress(SDValue Op,
|
||||
DebugLoc DL = Op.getDebugLoc();
|
||||
const GlobalValue *GV = cast<GlobalAddressSDNode>(Op)->getGlobal();
|
||||
|
||||
Op = DAG.getTargetGlobalAddress(GV, MVT::i32);
|
||||
Op = DAG.getTargetGlobalAddress(GV, DL, MVT::i32);
|
||||
return DAG.getNode(BFISD::Wrapper, DL, MVT::i32, Op);
|
||||
}
|
||||
|
||||
@ -356,7 +356,7 @@ BlackfinTargetLowering::LowerCall(SDValue Chain, SDValue Callee,
|
||||
// turn it into a TargetGlobalAddress node so that legalize doesn't hack it.
|
||||
// Likewise ExternalSymbol -> TargetExternalSymbol.
|
||||
if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee))
|
||||
Callee = DAG.getTargetGlobalAddress(G->getGlobal(), MVT::i32);
|
||||
Callee = DAG.getTargetGlobalAddress(G->getGlobal(), dl, MVT::i32);
|
||||
else if (ExternalSymbolSDNode *E = dyn_cast<ExternalSymbolSDNode>(Callee))
|
||||
Callee = DAG.getTargetExternalSymbol(E->getSymbol(), MVT::i32);
|
||||
|
||||
|
@ -953,7 +953,8 @@ LowerGlobalAddress(SDValue Op, SelectionDAG &DAG, const SPUSubtarget *ST) {
|
||||
EVT PtrVT = Op.getValueType();
|
||||
GlobalAddressSDNode *GSDN = cast<GlobalAddressSDNode>(Op);
|
||||
const GlobalValue *GV = GSDN->getGlobal();
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, PtrVT, GSDN->getOffset());
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, Op.getDebugLoc(),
|
||||
PtrVT, GSDN->getOffset());
|
||||
const TargetMachine &TM = DAG.getTarget();
|
||||
SDValue Zero = DAG.getConstant(0, PtrVT);
|
||||
// FIXME there is no actual debug info here
|
||||
@ -1232,7 +1233,7 @@ SPUTargetLowering::LowerCall(SDValue Chain, SDValue Callee,
|
||||
const GlobalValue *GV = G->getGlobal();
|
||||
EVT CalleeVT = Callee.getValueType();
|
||||
SDValue Zero = DAG.getConstant(0, PtrVT);
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, CalleeVT);
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, dl, CalleeVT);
|
||||
|
||||
if (!ST->usingLargeMem()) {
|
||||
// Turn calls to targets that are defined (i.e., have bodies) into BRSL
|
||||
|
@ -404,7 +404,7 @@ LowerGlobalAddress(SDValue Op, SelectionDAG &DAG) const {
|
||||
// FIXME there isn't actually debug info here
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
const GlobalValue *GV = cast<GlobalAddressSDNode>(Op)->getGlobal();
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, MVT::i32);
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, dl, MVT::i32);
|
||||
|
||||
return DAG.getNode(MBlazeISD::Wrap, dl, MVT::i32, GA);
|
||||
}
|
||||
@ -617,7 +617,7 @@ LowerCall(SDValue Chain, SDValue Callee, CallingConv::ID CallConv,
|
||||
// node so that legalize doesn't hack it.
|
||||
unsigned char OpFlag = MBlazeII::MO_NO_FLAG;
|
||||
if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee))
|
||||
Callee = DAG.getTargetGlobalAddress(G->getGlobal(),
|
||||
Callee = DAG.getTargetGlobalAddress(G->getGlobal(), dl,
|
||||
getPointerTy(), 0, OpFlag);
|
||||
else if (ExternalSymbolSDNode *S = dyn_cast<ExternalSymbolSDNode>(Callee))
|
||||
Callee = DAG.getTargetExternalSymbol(S->getSymbol(),
|
||||
|
@ -272,7 +272,8 @@ bool MSP430DAGToDAGISel::SelectAddr(SDNode *Op, SDValue N,
|
||||
AM.Base.Reg;
|
||||
|
||||
if (AM.GV)
|
||||
Disp = CurDAG->getTargetGlobalAddress(AM.GV, MVT::i16, AM.Disp,
|
||||
Disp = CurDAG->getTargetGlobalAddress(AM.GV, Op->getDebugLoc(),
|
||||
MVT::i16, AM.Disp,
|
||||
0/*AM.SymbolFlags*/);
|
||||
else if (AM.CP)
|
||||
Disp = CurDAG->getTargetConstantPool(AM.CP, MVT::i16,
|
||||
|
@ -529,7 +529,7 @@ MSP430TargetLowering::LowerCCCCallTo(SDValue Chain, SDValue Callee,
|
||||
// turn it into a TargetGlobalAddress node so that legalize doesn't hack it.
|
||||
// Likewise ExternalSymbol -> TargetExternalSymbol.
|
||||
if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee))
|
||||
Callee = DAG.getTargetGlobalAddress(G->getGlobal(), MVT::i16);
|
||||
Callee = DAG.getTargetGlobalAddress(G->getGlobal(), dl, MVT::i16);
|
||||
else if (ExternalSymbolSDNode *E = dyn_cast<ExternalSymbolSDNode>(Callee))
|
||||
Callee = DAG.getTargetExternalSymbol(E->getSymbol(), MVT::i16);
|
||||
|
||||
@ -642,7 +642,8 @@ SDValue MSP430TargetLowering::LowerGlobalAddress(SDValue Op,
|
||||
int64_t Offset = cast<GlobalAddressSDNode>(Op)->getOffset();
|
||||
|
||||
// Create the TargetGlobalAddress node, folding in the constant offset.
|
||||
SDValue Result = DAG.getTargetGlobalAddress(GV, getPointerTy(), Offset);
|
||||
SDValue Result = DAG.getTargetGlobalAddress(GV, Op.getDebugLoc(),
|
||||
getPointerTy(), Offset);
|
||||
return DAG.getNode(MSP430ISD::Wrapper, Op.getDebugLoc(),
|
||||
getPointerTy(), Result);
|
||||
}
|
||||
|
@ -489,21 +489,21 @@ SDValue MipsTargetLowering::LowerGlobalAddress(SDValue Op,
|
||||
|
||||
// %gp_rel relocation
|
||||
if (TLOF.IsGlobalInSmallSection(GV, getTargetMachine())) {
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, MVT::i32, 0,
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, dl, MVT::i32, 0,
|
||||
MipsII::MO_GPREL);
|
||||
SDValue GPRelNode = DAG.getNode(MipsISD::GPRel, dl, VTs, &GA, 1);
|
||||
SDValue GOT = DAG.getGLOBAL_OFFSET_TABLE(MVT::i32);
|
||||
return DAG.getNode(ISD::ADD, dl, MVT::i32, GOT, GPRelNode);
|
||||
}
|
||||
// %hi/%lo relocation
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, MVT::i32, 0,
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, dl, MVT::i32, 0,
|
||||
MipsII::MO_ABS_HILO);
|
||||
SDValue HiPart = DAG.getNode(MipsISD::Hi, dl, VTs, &GA, 1);
|
||||
SDValue Lo = DAG.getNode(MipsISD::Lo, dl, MVT::i32, GA);
|
||||
return DAG.getNode(ISD::ADD, dl, MVT::i32, HiPart, Lo);
|
||||
|
||||
} else {
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, MVT::i32, 0,
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, dl, MVT::i32, 0,
|
||||
MipsII::MO_GOT);
|
||||
SDValue ResNode = DAG.getLoad(MVT::i32, dl,
|
||||
DAG.getEntryNode(), GA, NULL, 0,
|
||||
@ -888,7 +888,7 @@ MipsTargetLowering::LowerCall(SDValue Chain, SDValue Callee,
|
||||
// node so that legalize doesn't hack it.
|
||||
unsigned char OpFlag = IsPIC ? MipsII::MO_GOT_CALL : MipsII::MO_NO_FLAG;
|
||||
if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee))
|
||||
Callee = DAG.getTargetGlobalAddress(G->getGlobal(),
|
||||
Callee = DAG.getTargetGlobalAddress(G->getGlobal(), dl,
|
||||
getPointerTy(), 0, OpFlag);
|
||||
else if (ExternalSymbolSDNode *S = dyn_cast<ExternalSymbolSDNode>(Callee))
|
||||
Callee = DAG.getTargetExternalSymbol(S->getSymbol(),
|
||||
|
@ -672,7 +672,8 @@ SDValue PIC16TargetLowering::ExpandGlobalAddress(SDNode *N,
|
||||
// FIXME there isn't really debug info here
|
||||
DebugLoc dl = G->getDebugLoc();
|
||||
|
||||
SDValue TGA = DAG.getTargetGlobalAddress(G->getGlobal(), MVT::i8,
|
||||
SDValue TGA = DAG.getTargetGlobalAddress(G->getGlobal(), N->getDebugLoc(),
|
||||
MVT::i8,
|
||||
G->getOffset());
|
||||
|
||||
SDValue Offset = DAG.getConstant(0, MVT::i8);
|
||||
@ -1428,7 +1429,7 @@ PIC16TargetLowering::LowerCall(SDValue Chain, SDValue Callee,
|
||||
// Considering the GlobalAddressNode case here.
|
||||
if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee)) {
|
||||
const GlobalValue *GV = G->getGlobal();
|
||||
Callee = DAG.getTargetGlobalAddress(GV, MVT::i8);
|
||||
Callee = DAG.getTargetGlobalAddress(GV, dl, MVT::i8);
|
||||
Name = G->getGlobal()->getName();
|
||||
} else {// Considering the ExternalSymbol case here
|
||||
ExternalSymbolSDNode *ES = dyn_cast<ExternalSymbolSDNode>(Callee);
|
||||
|
@ -1203,11 +1203,11 @@ SDValue PPCTargetLowering::LowerGlobalAddress(SDValue Op,
|
||||
SelectionDAG &DAG) const {
|
||||
EVT PtrVT = Op.getValueType();
|
||||
GlobalAddressSDNode *GSDN = cast<GlobalAddressSDNode>(Op);
|
||||
const GlobalValue *GV = GSDN->getGlobal();
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, PtrVT, GSDN->getOffset());
|
||||
SDValue Zero = DAG.getConstant(0, PtrVT);
|
||||
// FIXME there isn't really any debug info here
|
||||
DebugLoc dl = GSDN->getDebugLoc();
|
||||
const GlobalValue *GV = GSDN->getGlobal();
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, dl, PtrVT, GSDN->getOffset());
|
||||
SDValue Zero = DAG.getConstant(0, PtrVT);
|
||||
|
||||
const TargetMachine &TM = DAG.getTarget();
|
||||
|
||||
@ -2470,7 +2470,8 @@ unsigned PrepareCall(SelectionDAG &DAG, SDValue &Callee, SDValue &InFlag,
|
||||
// direct call is) turn it into a TargetGlobalAddress/TargetExternalSymbol
|
||||
// node so that legalize doesn't hack it.
|
||||
if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee))
|
||||
Callee = DAG.getTargetGlobalAddress(G->getGlobal(), Callee.getValueType());
|
||||
Callee = DAG.getTargetGlobalAddress(G->getGlobal(), dl,
|
||||
Callee.getValueType());
|
||||
else if (ExternalSymbolSDNode *S = dyn_cast<ExternalSymbolSDNode>(Callee))
|
||||
Callee = DAG.getTargetExternalSymbol(S->getSymbol(), Callee.getValueType());
|
||||
else if (SDNode *Dest = isBLACompatibleAddress(Callee, DAG))
|
||||
|
@ -478,7 +478,7 @@ SparcTargetLowering::LowerCall(SDValue Chain, SDValue Callee,
|
||||
// turn it into a TargetGlobalAddress node so that legalize doesn't hack it.
|
||||
// Likewise ExternalSymbol -> TargetExternalSymbol.
|
||||
if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee))
|
||||
Callee = DAG.getTargetGlobalAddress(G->getGlobal(), MVT::i32);
|
||||
Callee = DAG.getTargetGlobalAddress(G->getGlobal(), dl, MVT::i32);
|
||||
else if (ExternalSymbolSDNode *E = dyn_cast<ExternalSymbolSDNode>(Callee))
|
||||
Callee = DAG.getTargetExternalSymbol(E->getSymbol(), MVT::i32);
|
||||
|
||||
@ -759,7 +759,7 @@ SDValue SparcTargetLowering::LowerGlobalAddress(SDValue Op,
|
||||
const GlobalValue *GV = cast<GlobalAddressSDNode>(Op)->getGlobal();
|
||||
// FIXME there isn't really any debug info here
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, MVT::i32);
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, dl, MVT::i32);
|
||||
SDValue Hi = DAG.getNode(SPISD::Hi, dl, MVT::i32, GA);
|
||||
SDValue Lo = DAG.getNode(SPISD::Lo, dl, MVT::i32, GA);
|
||||
|
||||
|
@ -464,7 +464,7 @@ SystemZTargetLowering::LowerCCCCallTo(SDValue Chain, SDValue Callee,
|
||||
// turn it into a TargetGlobalAddress node so that legalize doesn't hack it.
|
||||
// Likewise ExternalSymbol -> TargetExternalSymbol.
|
||||
if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee))
|
||||
Callee = DAG.getTargetGlobalAddress(G->getGlobal(), getPointerTy());
|
||||
Callee = DAG.getTargetGlobalAddress(G->getGlobal(), dl, getPointerTy());
|
||||
else if (ExternalSymbolSDNode *E = dyn_cast<ExternalSymbolSDNode>(Callee))
|
||||
Callee = DAG.getTargetExternalSymbol(E->getSymbol(), getPointerTy());
|
||||
|
||||
@ -729,14 +729,14 @@ SDValue SystemZTargetLowering::LowerGlobalAddress(SDValue Op,
|
||||
|
||||
SDValue Result;
|
||||
if (!IsPic && !ExtraLoadRequired) {
|
||||
Result = DAG.getTargetGlobalAddress(GV, getPointerTy(), Offset);
|
||||
Result = DAG.getTargetGlobalAddress(GV, dl, getPointerTy(), Offset);
|
||||
Offset = 0;
|
||||
} else {
|
||||
unsigned char OpFlags = 0;
|
||||
if (ExtraLoadRequired)
|
||||
OpFlags = SystemZII::MO_GOTENT;
|
||||
|
||||
Result = DAG.getTargetGlobalAddress(GV, getPointerTy(), 0, OpFlags);
|
||||
Result = DAG.getTargetGlobalAddress(GV, dl, getPointerTy(), 0, OpFlags);
|
||||
}
|
||||
|
||||
Result = DAG.getNode(SystemZISD::PCRelativeWrapper, dl,
|
||||
|
@ -223,7 +223,8 @@ namespace {
|
||||
// These are 32-bit even in 64-bit mode since RIP relative offset
|
||||
// is 32-bit.
|
||||
if (AM.GV)
|
||||
Disp = CurDAG->getTargetGlobalAddress(AM.GV, MVT::i32, AM.Disp,
|
||||
Disp = CurDAG->getTargetGlobalAddress(AM.GV, DebugLoc(),
|
||||
MVT::i32, AM.Disp,
|
||||
AM.SymbolFlags);
|
||||
else if (AM.CP)
|
||||
Disp = CurDAG->getTargetConstantPool(AM.CP, MVT::i32,
|
||||
|
@ -2107,7 +2107,7 @@ X86TargetLowering::LowerCall(SDValue Chain, SDValue Callee,
|
||||
OpFlags = X86II::MO_DARWIN_STUB;
|
||||
}
|
||||
|
||||
Callee = DAG.getTargetGlobalAddress(GV, getPointerTy(),
|
||||
Callee = DAG.getTargetGlobalAddress(GV, dl, getPointerTy(),
|
||||
G->getOffset(), OpFlags);
|
||||
}
|
||||
} else if (ExternalSymbolSDNode *S = dyn_cast<ExternalSymbolSDNode>(Callee)) {
|
||||
@ -5248,10 +5248,10 @@ X86TargetLowering::LowerGlobalAddress(const GlobalValue *GV, DebugLoc dl,
|
||||
if (OpFlags == X86II::MO_NO_FLAG &&
|
||||
X86::isOffsetSuitableForCodeModel(Offset, M)) {
|
||||
// A direct static reference to a global.
|
||||
Result = DAG.getTargetGlobalAddress(GV, getPointerTy(), Offset);
|
||||
Result = DAG.getTargetGlobalAddress(GV, dl, getPointerTy(), Offset);
|
||||
Offset = 0;
|
||||
} else {
|
||||
Result = DAG.getTargetGlobalAddress(GV, getPointerTy(), 0, OpFlags);
|
||||
Result = DAG.getTargetGlobalAddress(GV, dl, getPointerTy(), 0, OpFlags);
|
||||
}
|
||||
|
||||
if (Subtarget->isPICStyleRIPRel() &&
|
||||
@ -5296,7 +5296,7 @@ GetTLSADDR(SelectionDAG &DAG, SDValue Chain, GlobalAddressSDNode *GA,
|
||||
MachineFrameInfo *MFI = DAG.getMachineFunction().getFrameInfo();
|
||||
SDVTList NodeTys = DAG.getVTList(MVT::Other, MVT::Flag);
|
||||
DebugLoc dl = GA->getDebugLoc();
|
||||
SDValue TGA = DAG.getTargetGlobalAddress(GA->getGlobal(),
|
||||
SDValue TGA = DAG.getTargetGlobalAddress(GA->getGlobal(), dl,
|
||||
GA->getValueType(0),
|
||||
GA->getOffset(),
|
||||
OperandFlags);
|
||||
@ -5369,7 +5369,8 @@ static SDValue LowerToTLSExecModel(GlobalAddressSDNode *GA, SelectionDAG &DAG,
|
||||
|
||||
// emit "addl x@ntpoff,%eax" (local exec) or "addl x@indntpoff,%eax" (initial
|
||||
// exec)
|
||||
SDValue TGA = DAG.getTargetGlobalAddress(GA->getGlobal(), GA->getValueType(0),
|
||||
SDValue TGA = DAG.getTargetGlobalAddress(GA->getGlobal(), dl,
|
||||
GA->getValueType(0),
|
||||
GA->getOffset(), OperandFlags);
|
||||
SDValue Offset = DAG.getNode(WrapperKind, dl, PtrVT, TGA);
|
||||
|
||||
@ -5426,12 +5427,10 @@ X86TargetLowering::LowerGlobalTLSAddress(SDValue Op, SelectionDAG &DAG) const {
|
||||
OpFlag = X86II::MO_TLVP_PIC_BASE;
|
||||
else
|
||||
OpFlag = X86II::MO_TLVP;
|
||||
|
||||
SDValue Result = DAG.getTargetGlobalAddress(GA->getGlobal(),
|
||||
DebugLoc DL = Op.getDebugLoc();
|
||||
SDValue Result = DAG.getTargetGlobalAddress(GA->getGlobal(), DL,
|
||||
getPointerTy(),
|
||||
GA->getOffset(), OpFlag);
|
||||
|
||||
DebugLoc DL = Op.getDebugLoc();
|
||||
SDValue Offset = DAG.getNode(WrapperKind, DL, getPointerTy(), Result);
|
||||
|
||||
// With PIC32, the address is actually $g + Offset.
|
||||
@ -10304,7 +10303,8 @@ void X86TargetLowering::LowerAsmOperandForConstraint(SDValue Op,
|
||||
getTargetMachine())))
|
||||
return;
|
||||
|
||||
Result = DAG.getTargetGlobalAddress(GV, GA->getValueType(0), Offset);
|
||||
Result = DAG.getTargetGlobalAddress(GV, Op.getDebugLoc(),
|
||||
GA->getValueType(0), Offset);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -245,7 +245,7 @@ SDValue XCoreTargetLowering::
|
||||
LowerGlobalAddress(SDValue Op, SelectionDAG &DAG) const
|
||||
{
|
||||
const GlobalValue *GV = cast<GlobalAddressSDNode>(Op)->getGlobal();
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, MVT::i32);
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, Op.getDebugLoc(), MVT::i32);
|
||||
// If it's a debug information descriptor, don't mess with it.
|
||||
if (DAG.isVerifiedDebugInfoDesc(Op))
|
||||
return GA;
|
||||
@ -269,7 +269,7 @@ LowerGlobalTLSAddress(SDValue Op, SelectionDAG &DAG) const
|
||||
DebugLoc dl = Op.getDebugLoc();
|
||||
// transform to label + getid() * size
|
||||
const GlobalValue *GV = cast<GlobalAddressSDNode>(Op)->getGlobal();
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, MVT::i32);
|
||||
SDValue GA = DAG.getTargetGlobalAddress(GV, dl, MVT::i32);
|
||||
const GlobalVariable *GVar = dyn_cast<GlobalVariable>(GV);
|
||||
if (!GVar) {
|
||||
// If GV is an alias then use the aliasee to determine size
|
||||
@ -919,7 +919,7 @@ XCoreTargetLowering::LowerCCCCallTo(SDValue Chain, SDValue Callee,
|
||||
// turn it into a TargetGlobalAddress node so that legalize doesn't hack it.
|
||||
// Likewise ExternalSymbol -> TargetExternalSymbol.
|
||||
if (GlobalAddressSDNode *G = dyn_cast<GlobalAddressSDNode>(Callee))
|
||||
Callee = DAG.getTargetGlobalAddress(G->getGlobal(), MVT::i32);
|
||||
Callee = DAG.getTargetGlobalAddress(G->getGlobal(), dl, MVT::i32);
|
||||
else if (ExternalSymbolSDNode *E = dyn_cast<ExternalSymbolSDNode>(Callee))
|
||||
Callee = DAG.getTargetExternalSymbol(E->getSymbol(), MVT::i32);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user