diff options
| author | Devang Patel <dpatel@apple.com> | 2010-08-26 20:06:46 +0000 |
|---|---|---|
| committer | Devang Patel <dpatel@apple.com> | 2010-08-26 20:06:46 +0000 |
| commit | 384fa91deb11e7bd153fb4228ff11b1f788cbaf9 (patch) | |
| tree | 950d4058805953010d6aed14003a7fc3427208e6 /llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | |
| parent | 07b71c4eb147cdeb8b7df71c466be38a719578e4 (diff) | |
| download | bcm5719-llvm-384fa91deb11e7bd153fb4228ff11b1f788cbaf9.tar.gz bcm5719-llvm-384fa91deb11e7bd153fb4228ff11b1f788cbaf9.zip | |
Update DanglingDebugInfo so that it can be used to track llvm.dbg.declare also.
llvm-svn: 112213
Diffstat (limited to 'llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp')
| -rw-r--r-- | llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp index 15ad23de979..a1ff8adc462 100644 --- a/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp +++ b/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp @@ -875,12 +875,23 @@ void SelectionDAGBuilder::visit(unsigned Opcode, const User &I) { void SelectionDAGBuilder::resolveDanglingDebugInfo(const Value *V, SDValue Val) { DanglingDebugInfo &DDI = DanglingDebugInfoMap[V]; - if (DDI.getDI()) { - const DbgValueInst *DI = DDI.getDI(); + MDNode *Variable = NULL; + uint64_t Offset = 0; + + if (const DbgValueInst *DI = dyn_cast_or_null<DbgValueInst>(DDI.getDI())) { + Variable = DI->getVariable(); + Offset = DI->getOffset(); + } else if (const DbgDeclareInst *DI = + dyn_cast_or_null<DbgDeclareInst>(DDI.getDI())) + Variable = DI->getVariable(); + else { + assert (DDI.getDI() == NULL && "Invalid debug info intrinsic!"); + return; + } + + if (Variable) { DebugLoc dl = DDI.getdl(); unsigned DbgSDNodeOrder = DDI.getSDNodeOrder(); - MDNode *Variable = DI->getVariable(); - uint64_t Offset = DI->getOffset(); SDDbgValue *SDV; if (Val.getNode()) { if (!EmitFuncArgumentDbgValue(V, Variable, Offset, Val)) { |

