aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/CodeGen/DwarfWriter.h6
-rw-r--r--lib/CodeGen/AsmPrinter/DwarfWriter.cpp19
-rw-r--r--lib/CodeGen/SelectionDAG/FastISel.cpp11
-rw-r--r--lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp11
4 files changed, 24 insertions, 23 deletions
diff --git a/include/llvm/CodeGen/DwarfWriter.h b/include/llvm/CodeGen/DwarfWriter.h
index 8e680e3e11..facd5f6e6a 100644
--- a/include/llvm/CodeGen/DwarfWriter.h
+++ b/include/llvm/CodeGen/DwarfWriter.h
@@ -106,11 +106,11 @@ public:
bool ShouldEmitDwarfDebug() const;
//// RecordInlinedFnStart - Indicate the start of a inlined function.
- void RecordInlinedFnStart(Instruction *I, DISubprogram &SP, unsigned LabelID,
- DICompileUnit CU, unsigned Line, unsigned Col);
+ unsigned RecordInlinedFnStart(DISubprogram SP, DICompileUnit CU,
+ unsigned Line, unsigned Col);
/// RecordInlinedFnEnd - Indicate the end of inlined subroutine.
- unsigned RecordInlinedFnEnd(DISubprogram &SP);
+ unsigned RecordInlinedFnEnd(DISubprogram SP);
/// RecordVariableScope - Record scope for the variable declared by
/// DeclareMI. DeclareMI must describe TargetInstrInfo::DECLARE.
diff --git a/lib/CodeGen/AsmPrinter/DwarfWriter.cpp b/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
index f12bcd38cb..cb53168b41 100644
--- a/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
+++ b/lib/CodeGen/AsmPrinter/DwarfWriter.cpp
@@ -3487,10 +3487,12 @@ public:
}
//// RecordInlinedFnStart - Indicate the start of inlined subroutine.
- void RecordInlinedFnStart(Instruction *FSI, DISubprogram &SP, unsigned LabelID,
- DICompileUnit CU, unsigned Line, unsigned Col) {
+ unsigned RecordInlinedFnStart(DISubprogram &SP, DICompileUnit CU,
+ unsigned Line, unsigned Col) {
+ unsigned LabelID = MMI->NextLabelID();
+
if (!TAI->doesDwarfUsesInlineInfoSection())
- return;
+ return LabelID;
if (TimePassesIsEnabled)
DebugTimer->startTimer();
@@ -3520,6 +3522,8 @@ public:
if (TimePassesIsEnabled)
DebugTimer->stopTimer();
+
+ return LabelID;
}
/// RecordInlinedFnEnd - Indicate the end of inlined subroutine.
@@ -4749,14 +4753,13 @@ bool DwarfWriter::ShouldEmitDwarfDebug() const {
//// RecordInlinedFnStart - Global variable GV is inlined at the location marked
//// by LabelID label.
-void DwarfWriter::RecordInlinedFnStart(Instruction *I, DISubprogram &SP,
- unsigned LabelID, DICompileUnit CU,
- unsigned Line, unsigned Col) {
- DD->RecordInlinedFnStart(I, SP, LabelID, CU, Line, Col);
+unsigned DwarfWriter::RecordInlinedFnStart(DISubprogram SP, DICompileUnit CU,
+ unsigned Line, unsigned Col) {
+ return DD->RecordInlinedFnStart(SP, CU, Line, Col);
}
/// RecordInlinedFnEnd - Indicate the end of inlined subroutine.
-unsigned DwarfWriter::RecordInlinedFnEnd(DISubprogram &SP) {
+unsigned DwarfWriter::RecordInlinedFnEnd(DISubprogram SP) {
return DD->RecordInlinedFnEnd(SP);
}
diff --git a/lib/CodeGen/SelectionDAG/FastISel.cpp b/lib/CodeGen/SelectionDAG/FastISel.cpp
index f7100515b2..22051867a0 100644
--- a/lib/CodeGen/SelectionDAG/FastISel.cpp
+++ b/lib/CodeGen/SelectionDAG/FastISel.cpp
@@ -397,14 +397,13 @@ bool FastISel::SelectCall(User *I) {
CompileUnit.getGV(), Line, 0)));
if (DW && DW->ShouldEmitDwarfDebug()) {
- unsigned LabelID = MMI->NextLabelID();
+ DebugLocTuple PrevLocTpl = MF.getDebugLocTuple(PrevLoc);
+ unsigned LabelID = DW->RecordInlinedFnStart(Subprogram,
+ DICompileUnit(PrevLocTpl.CompileUnit),
+ PrevLocTpl.Line,
+ PrevLocTpl.Col);
const TargetInstrDesc &II = TII.get(TargetInstrInfo::DBG_LABEL);
BuildMI(MBB, DL, II).addImm(LabelID);
- DebugLocTuple PrevLocTpl = MF.getDebugLocTuple(PrevLoc);
- DW->RecordInlinedFnStart(FSI, Subprogram, LabelID,
- DICompileUnit(PrevLocTpl.CompileUnit),
- PrevLocTpl.Line,
- PrevLocTpl.Col);
}
} else {
// Record the source line.
diff --git a/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp b/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
index a91dd8e715..fd89108392 100644
--- a/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
+++ b/lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp
@@ -3981,14 +3981,13 @@ SelectionDAGLowering::visitIntrinsicCall(CallInst &I, unsigned Intrinsic) {
MF.getOrCreateDebugLocID(CompileUnit.getGV(), Line, 0)));
if (DW && DW->ShouldEmitDwarfDebug()) {
- unsigned LabelID = DAG.getMachineModuleInfo()->NextLabelID();
+ DebugLocTuple PrevLocTpl = MF.getDebugLocTuple(PrevLoc);
+ unsigned LabelID = DW->RecordInlinedFnStart(Subprogram,
+ DICompileUnit(PrevLocTpl.CompileUnit),
+ PrevLocTpl.Line,
+ PrevLocTpl.Col);
DAG.setRoot(DAG.getLabel(ISD::DBG_LABEL, getCurDebugLoc(),
getRoot(), LabelID));
- DebugLocTuple PrevLocTpl = MF.getDebugLocTuple(PrevLoc);
- DW->RecordInlinedFnStart(&FSI, Subprogram, LabelID,
- DICompileUnit(PrevLocTpl.CompileUnit),
- PrevLocTpl.Line,
- PrevLocTpl.Col);
}
} else {
// Record the source line.