[llvm-commits] [llvm] r64000 - in /llvm/trunk: include/llvm/CodeGen/SelectionDAG.h include/llvm/CodeGen/SelectionDAGNodes.h lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Dale Johannesen
dalej at apple.com
Fri Feb 6 18:15:06 PST 2009
Author: johannes
Date: Fri Feb 6 20:15:05 2009
New Revision: 64000
URL: http://llvm.org/viewvc/llvm-project?rev=64000&view=rev
Log:
Make SDNode constructors take a DebugLoc always.
Adjust derived classes to pass UnknownLoc where
a DebugLoc does not make sense. Pick one of
DebugLoc and non-DebugLoc variants to survive
for all such classes.
Modified:
llvm/trunk/include/llvm/CodeGen/SelectionDAG.h
llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h
llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
Modified: llvm/trunk/include/llvm/CodeGen/SelectionDAG.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/SelectionDAG.h?rev=64000&r1=63999&r2=64000&view=diff
==============================================================================
--- llvm/trunk/include/llvm/CodeGen/SelectionDAG.h (original)
+++ llvm/trunk/include/llvm/CodeGen/SelectionDAG.h Fri Feb 6 20:15:05 2009
@@ -41,7 +41,8 @@
private:
mutable SDNode Sentinel;
public:
- ilist_traits() : Sentinel(ISD::DELETED_NODE, SDVTList()) {}
+ ilist_traits() : Sentinel(ISD::DELETED_NODE, DebugLoc::getUnknownLoc(),
+ SDVTList()) {}
SDNode *createSentinel() const {
return &Sentinel;
Modified: llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h?rev=64000&r1=63999&r2=64000&view=diff
==============================================================================
--- llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h (original)
+++ llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h Fri Feb 6 20:15:05 2009
@@ -1353,33 +1353,6 @@
return Ret;
}
- /// The constructors that supply DebugLoc explicitly should be preferred
- /// for new code.
- SDNode(unsigned Opc, SDVTList VTs, const SDValue *Ops, unsigned NumOps)
- : NodeType(Opc), OperandsNeedDelete(true), SubclassData(0),
- NodeId(-1),
- OperandList(NumOps ? new SDUse[NumOps] : 0),
- ValueList(VTs.VTs),
- UseList(NULL),
- NumOperands(NumOps), NumValues(VTs.NumVTs),
- debugLoc(DebugLoc::getUnknownLoc()) {
- for (unsigned i = 0; i != NumOps; ++i) {
- OperandList[i].setUser(this);
- OperandList[i].setInitial(Ops[i]);
- }
- }
-
- /// This constructor adds no operands itself; operands can be
- /// set later with InitOperands.
- SDNode(unsigned Opc, SDVTList VTs)
- : NodeType(Opc), OperandsNeedDelete(false), SubclassData(0),
- NodeId(-1), OperandList(0), ValueList(VTs.VTs), UseList(NULL),
- NumOperands(0), NumValues(VTs.NumVTs),
- debugLoc(DebugLoc::getUnknownLoc()) {}
-
- /// The next two constructors specify DebugLoc explicitly; the intent
- /// is that they will replace the above two over time, and eventually
- /// the ones above can be removed.
SDNode(unsigned Opc, const DebugLoc dl, SDVTList VTs, const SDValue *Ops,
unsigned NumOps)
: NodeType(Opc), OperandsNeedDelete(true), SubclassData(0),
@@ -1568,7 +1541,8 @@
#else
explicit HandleSDNode(SDValue X)
#endif
- : SDNode(ISD::HANDLENODE, getSDVTList(MVT::Other)) {
+ : SDNode(ISD::HANDLENODE, DebugLoc::getUnknownLoc(),
+ getSDVTList(MVT::Other)) {
InitOperands(&Op, X);
}
~HandleSDNode();
@@ -1739,8 +1713,8 @@
protected:
friend class SelectionDAG;
ConstantSDNode(bool isTarget, const ConstantInt *val, MVT VT)
- : SDNode(isTarget ? ISD::TargetConstant : ISD::Constant, getSDVTList(VT)),
- Value(val) {
+ : SDNode(isTarget ? ISD::TargetConstant : ISD::Constant,
+ DebugLoc::getUnknownLoc(), getSDVTList(VT)), Value(val) {
}
public:
@@ -1765,7 +1739,7 @@
friend class SelectionDAG;
ConstantFPSDNode(bool isTarget, const ConstantFP *val, MVT VT)
: SDNode(isTarget ? ISD::TargetConstantFP : ISD::ConstantFP,
- getSDVTList(VT)), Value(val) {
+ DebugLoc::getUnknownLoc(), getSDVTList(VT)), Value(val) {
}
public:
@@ -1827,8 +1801,8 @@
protected:
friend class SelectionDAG;
FrameIndexSDNode(int fi, MVT VT, bool isTarg)
- : SDNode(isTarg ? ISD::TargetFrameIndex : ISD::FrameIndex, getSDVTList(VT)),
- FI(fi) {
+ : SDNode(isTarg ? ISD::TargetFrameIndex : ISD::FrameIndex,
+ DebugLoc::getUnknownLoc(), getSDVTList(VT)), FI(fi) {
}
public:
@@ -1846,8 +1820,8 @@
protected:
friend class SelectionDAG;
JumpTableSDNode(int jti, MVT VT, bool isTarg)
- : SDNode(isTarg ? ISD::TargetJumpTable : ISD::JumpTable, getSDVTList(VT)),
- JTI(jti) {
+ : SDNode(isTarg ? ISD::TargetJumpTable : ISD::JumpTable,
+ DebugLoc::getUnknownLoc(), getSDVTList(VT)), JTI(jti) {
}
public:
@@ -1871,12 +1845,14 @@
friend class SelectionDAG;
ConstantPoolSDNode(bool isTarget, Constant *c, MVT VT, int o=0)
: SDNode(isTarget ? ISD::TargetConstantPool : ISD::ConstantPool,
+ DebugLoc::getUnknownLoc(),
getSDVTList(VT)), Offset(o), Alignment(0) {
assert((int)Offset >= 0 && "Offset is too large");
Val.ConstVal = c;
}
ConstantPoolSDNode(bool isTarget, Constant *c, MVT VT, int o, unsigned Align)
- : SDNode(isTarget ? ISD::TargetConstantPool : ISD::ConstantPool,
+ : SDNode(isTarget ? ISD::TargetConstantPool : ISD::ConstantPool,
+ DebugLoc::getUnknownLoc(),
getSDVTList(VT)), Offset(o), Alignment(Align) {
assert((int)Offset >= 0 && "Offset is too large");
Val.ConstVal = c;
@@ -1884,6 +1860,7 @@
ConstantPoolSDNode(bool isTarget, MachineConstantPoolValue *v,
MVT VT, int o=0)
: SDNode(isTarget ? ISD::TargetConstantPool : ISD::ConstantPool,
+ DebugLoc::getUnknownLoc(),
getSDVTList(VT)), Offset(o), Alignment(0) {
assert((int)Offset >= 0 && "Offset is too large");
Val.MachineCPVal = v;
@@ -1892,6 +1869,7 @@
ConstantPoolSDNode(bool isTarget, MachineConstantPoolValue *v,
MVT VT, int o, unsigned Align)
: SDNode(isTarget ? ISD::TargetConstantPool : ISD::ConstantPool,
+ DebugLoc::getUnknownLoc(),
getSDVTList(VT)), Offset(o), Alignment(Align) {
assert((int)Offset >= 0 && "Offset is too large");
Val.MachineCPVal = v;
@@ -1934,11 +1912,12 @@
MachineBasicBlock *MBB;
protected:
friend class SelectionDAG;
+ /// Debug info is meaningful and potentially useful here, but we create
+ /// blocks out of order when they're jumped to, which makes it a bit
+ /// harder. Let's see if we need it first.
explicit BasicBlockSDNode(MachineBasicBlock *mbb)
- : SDNode(ISD::BasicBlock, getSDVTList(MVT::Other)), MBB(mbb) {
- }
- explicit BasicBlockSDNode(MachineBasicBlock *mbb, DebugLoc dl)
- : SDNode(ISD::BasicBlock, dl, getSDVTList(MVT::Other)), MBB(mbb) {
+ : SDNode(ISD::BasicBlock, DebugLoc::getUnknownLoc(),
+ getSDVTList(MVT::Other)), MBB(mbb) {
}
public:
@@ -1964,7 +1943,8 @@
friend class SelectionDAG;
/// Create a SrcValue for a general value.
explicit SrcValueSDNode(const Value *v)
- : SDNode(ISD::SRCVALUE, getSDVTList(MVT::Other)), V(v) {}
+ : SDNode(ISD::SRCVALUE, DebugLoc::getUnknownLoc(),
+ getSDVTList(MVT::Other)), V(v) {}
public:
/// getValue - return the contained Value.
@@ -1986,7 +1966,8 @@
friend class SelectionDAG;
/// Create a MachineMemOperand node
explicit MemOperandSDNode(const MachineMemOperand &mo)
- : SDNode(ISD::MEMOPERAND, getSDVTList(MVT::Other)), MO(mo) {}
+ : SDNode(ISD::MEMOPERAND, DebugLoc::getUnknownLoc(),
+ getSDVTList(MVT::Other)), MO(mo) {}
public:
/// MO - The contained MachineMemOperand.
@@ -2004,7 +1985,8 @@
protected:
friend class SelectionDAG;
RegisterSDNode(unsigned reg, MVT VT)
- : SDNode(ISD::Register, getSDVTList(VT)), Reg(reg) {
+ : SDNode(ISD::Register, DebugLoc::getUnknownLoc(),
+ getSDVTList(VT)), Reg(reg) {
}
public:
@@ -2025,8 +2007,8 @@
friend class SelectionDAG;
DbgStopPointSDNode(SDValue ch, unsigned l, unsigned c,
Value *cu)
- : SDNode(ISD::DBG_STOPPOINT, getSDVTList(MVT::Other)),
- Line(l), Column(c), CU(cu) {
+ : SDNode(ISD::DBG_STOPPOINT, DebugLoc::getUnknownLoc(),
+ getSDVTList(MVT::Other)), Line(l), Column(c), CU(cu) {
InitOperands(&Chain, ch);
}
public:
@@ -2065,10 +2047,7 @@
friend class SelectionDAG;
ExternalSymbolSDNode(bool isTarget, const char *Sym, MVT VT)
: SDNode(isTarget ? ISD::TargetExternalSymbol : ISD::ExternalSymbol,
- getSDVTList(VT)), Symbol(Sym) {
- }
- ExternalSymbolSDNode(bool isTarget, DebugLoc dl, const char *Sym, MVT VT)
- : SDNode(isTarget ? ISD::TargetExternalSymbol : ISD::ExternalSymbol, dl,
+ DebugLoc::getUnknownLoc(),
getSDVTList(VT)), Symbol(Sym) {
}
public:
@@ -2087,7 +2066,8 @@
protected:
friend class SelectionDAG;
explicit CondCodeSDNode(ISD::CondCode Cond)
- : SDNode(ISD::CONDCODE, getSDVTList(MVT::Other)), Condition(Cond) {
+ : SDNode(ISD::CONDCODE, DebugLoc::getUnknownLoc(),
+ getSDVTList(MVT::Other)), Condition(Cond) {
}
public:
@@ -2211,7 +2191,8 @@
protected:
friend class SelectionDAG;
explicit ARG_FLAGSSDNode(ISD::ArgFlagsTy Flags)
- : SDNode(ISD::ARG_FLAGS, getSDVTList(MVT::Other)), TheFlags(Flags) {
+ : SDNode(ISD::ARG_FLAGS, DebugLoc::getUnknownLoc(),
+ getSDVTList(MVT::Other)), TheFlags(Flags) {
}
public:
ISD::ArgFlagsTy getArgFlags() const { return TheFlags; }
@@ -2279,7 +2260,8 @@
protected:
friend class SelectionDAG;
explicit VTSDNode(MVT VT)
- : SDNode(ISD::VALUETYPE, getSDVTList(MVT::Other)), ValueType(VT) {
+ : SDNode(ISD::VALUETYPE, DebugLoc::getUnknownLoc(),
+ getSDVTList(MVT::Other)), ValueType(VT) {
}
public:
Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp?rev=64000&r1=63999&r2=64000&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (original)
+++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Fri Feb 6 20:15:05 2009
@@ -786,10 +786,11 @@
return TLI.getTargetData()->getABITypeAlignment(Ty);
}
+// EntryNode could meaningfully have debug info if we can find it...
SelectionDAG::SelectionDAG(TargetLowering &tli, FunctionLoweringInfo &fli)
: TLI(tli), FLI(fli), DW(0),
- EntryNode(ISD::EntryToken, getVTList(MVT::Other)),
- Root(getEntryNode()) {
+ EntryNode(ISD::EntryToken, DebugLoc::getUnknownLoc(),
+ getVTList(MVT::Other)), Root(getEntryNode()) {
AllNodes.push_back(&EntryNode);
}
@@ -1077,20 +1078,6 @@
return SDValue(N, 0);
}
-SDValue SelectionDAG::getBasicBlock(MachineBasicBlock *MBB, DebugLoc dl) {
- FoldingSetNodeID ID;
- AddNodeIDNode(ID, ISD::BasicBlock, getVTList(MVT::Other), 0, 0);
- ID.AddPointer(MBB);
- void *IP = 0;
- if (SDNode *E = CSEMap.FindNodeOrInsertPos(ID, IP))
- return SDValue(E, 0);
- SDNode *N = NodeAllocator.Allocate<BasicBlockSDNode>();
- new (N) BasicBlockSDNode(MBB, dl);
- CSEMap.InsertNode(N, IP);
- AllNodes.push_back(N);
- return SDValue(N, 0);
-}
-
SDValue SelectionDAG::getArgFlags(ISD::ArgFlagsTy Flags) {
FoldingSetNodeID ID;
AddNodeIDNode(ID, ISD::ARG_FLAGS, getVTList(MVT::Other), 0, 0);
@@ -1128,15 +1115,6 @@
return SDValue(N, 0);
}
-SDValue SelectionDAG::getExternalSymbol(const char *Sym, DebugLoc dl, MVT VT) {
- SDNode *&N = ExternalSymbols[Sym];
- if (N) return SDValue(N, 0);
- N = NodeAllocator.Allocate<ExternalSymbolSDNode>();
- new (N) ExternalSymbolSDNode(false, dl, Sym, VT);
- AllNodes.push_back(N);
- return SDValue(N, 0);
-}
-
SDValue SelectionDAG::getTargetExternalSymbol(const char *Sym, MVT VT) {
SDNode *&N = TargetExternalSymbols[Sym];
if (N) return SDValue(N, 0);
@@ -1146,16 +1124,6 @@
return SDValue(N, 0);
}
-SDValue SelectionDAG::getTargetExternalSymbol(const char *Sym, DebugLoc dl,
- MVT VT) {
- SDNode *&N = TargetExternalSymbols[Sym];
- if (N) return SDValue(N, 0);
- N = NodeAllocator.Allocate<ExternalSymbolSDNode>();
- new (N) ExternalSymbolSDNode(true, dl, Sym, VT);
- AllNodes.push_back(N);
- return SDValue(N, 0);
-}
-
SDValue SelectionDAG::getCondCode(ISD::CondCode Cond) {
if ((unsigned)Cond >= CondCodeNodes.size())
CondCodeNodes.resize(Cond+1);
@@ -4828,7 +4796,7 @@
(isTarget ? ISD::TargetGlobalTLSAddress : ISD::GlobalTLSAddress) :
// Non Thread Local
(isTarget ? ISD::TargetGlobalAddress : ISD::GlobalAddress),
- getSDVTList(VT)), Offset(o) {
+ DebugLoc::getUnknownLoc(), getSDVTList(VT)), Offset(o) {
TheGlobal = const_cast<GlobalValue*>(GA);
}
More information about the llvm-commits
mailing list