forked from OSchip/llvm-project
Revert r70803 for now, it causes a regression.
llvm-svn: 70811
This commit is contained in:
parent
d22aa4a5e5
commit
79be34012f
|
@ -3262,6 +3262,13 @@ public:
|
||||||
// Assumes in correct section after the entry point.
|
// Assumes in correct section after the entry point.
|
||||||
EmitLabel("func_begin", ++SubprogramCount);
|
EmitLabel("func_begin", ++SubprogramCount);
|
||||||
|
|
||||||
|
// Emit label for the implicitly defined dbg.stoppoint at the start of
|
||||||
|
// the function.
|
||||||
|
if (!Lines.empty()) {
|
||||||
|
const SrcLineInfo &LineInfo = Lines[0];
|
||||||
|
Asm->printLabel(LineInfo.getLabelID());
|
||||||
|
}
|
||||||
|
|
||||||
if (TimePassesIsEnabled)
|
if (TimePassesIsEnabled)
|
||||||
DebugTimer->stopTimer();
|
DebugTimer->stopTimer();
|
||||||
}
|
}
|
||||||
|
|
|
@ -333,6 +333,11 @@ bool FastISel::SelectCall(User *I) {
|
||||||
unsigned Col = SPI->getColumn();
|
unsigned Col = SPI->getColumn();
|
||||||
unsigned Idx = MF.getOrCreateDebugLocID(CU.getGV(), Line, Col);
|
unsigned Idx = MF.getOrCreateDebugLocID(CU.getGV(), Line, Col);
|
||||||
setCurDebugLoc(DebugLoc::get(Idx));
|
setCurDebugLoc(DebugLoc::get(Idx));
|
||||||
|
if (DW && DW->ShouldEmitDwarfDebug()) {
|
||||||
|
unsigned ID = DW->RecordSourceLine(Line, Col, CU);
|
||||||
|
const TargetInstrDesc &II = TII.get(TargetInstrInfo::DBG_LABEL);
|
||||||
|
BuildMI(MBB, DL, II).addImm(ID);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -397,7 +402,7 @@ bool FastISel::SelectCall(User *I) {
|
||||||
CompileUnit.getGV(), Line, 0)));
|
CompileUnit.getGV(), Line, 0)));
|
||||||
|
|
||||||
if (DW && DW->ShouldEmitDwarfDebug()) {
|
if (DW && DW->ShouldEmitDwarfDebug()) {
|
||||||
unsigned LabelID = MMI->NextLabelID();
|
unsigned LabelID = DW->RecordSourceLine(Line, 0, CompileUnit);
|
||||||
const TargetInstrDesc &II = TII.get(TargetInstrInfo::DBG_LABEL);
|
const TargetInstrDesc &II = TII.get(TargetInstrInfo::DBG_LABEL);
|
||||||
BuildMI(MBB, DL, II).addImm(LabelID);
|
BuildMI(MBB, DL, II).addImm(LabelID);
|
||||||
DebugLocTuple PrevLocTpl = MF.getDebugLocTuple(PrevLoc);
|
DebugLocTuple PrevLocTpl = MF.getDebugLocTuple(PrevLoc);
|
||||||
|
@ -412,6 +417,7 @@ bool FastISel::SelectCall(User *I) {
|
||||||
setCurDebugLoc(DebugLoc::get(MF.getOrCreateDebugLocID(
|
setCurDebugLoc(DebugLoc::get(MF.getOrCreateDebugLocID(
|
||||||
CompileUnit.getGV(), Line, 0)));
|
CompileUnit.getGV(), Line, 0)));
|
||||||
if (DW && DW->ShouldEmitDwarfDebug()) {
|
if (DW && DW->ShouldEmitDwarfDebug()) {
|
||||||
|
DW->RecordSourceLine(Line, 0, CompileUnit);
|
||||||
// llvm.dbg.func_start also defines beginning of function scope.
|
// llvm.dbg.func_start also defines beginning of function scope.
|
||||||
DW->RecordRegionStart(cast<GlobalVariable>(FSI->getSubprogram()));
|
DW->RecordRegionStart(cast<GlobalVariable>(FSI->getSubprogram()));
|
||||||
}
|
}
|
||||||
|
|
|
@ -3980,7 +3980,7 @@ SelectionDAGLowering::visitIntrinsicCall(CallInst &I, unsigned Intrinsic) {
|
||||||
MF.getOrCreateDebugLocID(CompileUnit.getGV(), Line, 0)));
|
MF.getOrCreateDebugLocID(CompileUnit.getGV(), Line, 0)));
|
||||||
|
|
||||||
if (DW && DW->ShouldEmitDwarfDebug()) {
|
if (DW && DW->ShouldEmitDwarfDebug()) {
|
||||||
unsigned LabelID = DAG.getMachineModuleInfo()->NextLabelID();
|
unsigned LabelID = DW->RecordSourceLine(Line, 0, CompileUnit);
|
||||||
DAG.setRoot(DAG.getLabel(ISD::DBG_LABEL, getCurDebugLoc(),
|
DAG.setRoot(DAG.getLabel(ISD::DBG_LABEL, getCurDebugLoc(),
|
||||||
getRoot(), LabelID));
|
getRoot(), LabelID));
|
||||||
DebugLocTuple PrevLocTpl = MF.getDebugLocTuple(PrevLoc);
|
DebugLocTuple PrevLocTpl = MF.getDebugLocTuple(PrevLoc);
|
||||||
|
@ -3995,6 +3995,7 @@ SelectionDAGLowering::visitIntrinsicCall(CallInst &I, unsigned Intrinsic) {
|
||||||
setCurDebugLoc(DebugLoc::get(
|
setCurDebugLoc(DebugLoc::get(
|
||||||
MF.getOrCreateDebugLocID(CompileUnit.getGV(), Line, 0)));
|
MF.getOrCreateDebugLocID(CompileUnit.getGV(), Line, 0)));
|
||||||
if (DW && DW->ShouldEmitDwarfDebug()) {
|
if (DW && DW->ShouldEmitDwarfDebug()) {
|
||||||
|
DW->RecordSourceLine(Line, 0, CompileUnit);
|
||||||
// llvm.dbg.func_start also defines beginning of function scope.
|
// llvm.dbg.func_start also defines beginning of function scope.
|
||||||
DW->RecordRegionStart(cast<GlobalVariable>(FSI.getSubprogram()));
|
DW->RecordRegionStart(cast<GlobalVariable>(FSI.getSubprogram()));
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
; RUN: llvm-as < %s | llc | grep "\\"m.h\\"" | count 1
|
; RUN: llvm-as < %s | llc | grep "m.h" | count 1
|
||||||
target triple = "i386-apple-darwin9.6"
|
target triple = "i386-apple-darwin9.6"
|
||||||
%llvm.dbg.anchor.type = type { i32, i32 }
|
%llvm.dbg.anchor.type = type { i32, i32 }
|
||||||
%llvm.dbg.basictype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, i32 }
|
%llvm.dbg.basictype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, i32 }
|
||||||
|
|
|
@ -650,12 +650,12 @@ void AsmWriterEmitter::run(std::ostream &O) {
|
||||||
O << "\";\n\n";
|
O << "\";\n\n";
|
||||||
|
|
||||||
O << " if (TAI->doesSupportDebugInformation() &&\n"
|
O << " if (TAI->doesSupportDebugInformation() &&\n"
|
||||||
<< " DW->ShouldEmitDwarfDebug()) {\n"
|
<< " DW->ShouldEmitDwarfDebug() && OptLevel != CodeGenOpt::None) {\n"
|
||||||
<< " DebugLoc CurDL = MI->getDebugLoc();\n\n"
|
<< " DebugLoc CurDL = MI->getDebugLoc();\n\n"
|
||||||
<< " if (!CurDL.isUnknown()) {\n"
|
<< " if (!CurDL.isUnknown()) {\n"
|
||||||
<< " static DebugLocTuple PrevDLT(0, ~0U, ~0U);\n"
|
<< " static DebugLocTuple PrevDLT(0, ~0U, ~0U);\n"
|
||||||
<< " DebugLocTuple CurDLT = MF->getDebugLocTuple(CurDL);\n\n"
|
<< " DebugLocTuple CurDLT = MF->getDebugLocTuple(CurDL);\n\n"
|
||||||
<< " if (CurDLT.CompileUnit != 0 && PrevDLT != CurDLT)\n"
|
<< " if (PrevDLT.CompileUnit != 0 && PrevDLT != CurDLT)\n"
|
||||||
<< " printLabel(DW->RecordSourceLine(CurDLT.Line, CurDLT.Col,\n"
|
<< " printLabel(DW->RecordSourceLine(CurDLT.Line, CurDLT.Col,\n"
|
||||||
<< " DICompileUnit(CurDLT.CompileUnit)));\n\n"
|
<< " DICompileUnit(CurDLT.CompileUnit)));\n\n"
|
||||||
<< " PrevDLT = CurDLT;\n"
|
<< " PrevDLT = CurDLT;\n"
|
||||||
|
|
Loading…
Reference in New Issue