Emit label for llvm.dbg.func.start of the inlined function.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58814 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Devang Patel 2008-11-06 21:28:20 +00:00
parent 00f1c4040c
commit e75808cf3d
2 changed files with 9 additions and 3 deletions

View File

@ -349,9 +349,14 @@ bool FastISel::SelectCall(User *I) {
SubprogramDesc *Subprogram = cast<SubprogramDesc>(DD);
const CompileUnitDesc *CompileUnit = Subprogram->getFile();
unsigned SrcFile = MMI->RecordSource(CompileUnit);
// Record the source line but does create a label. It will be emitted
// at asm emission time.
MMI->RecordSourceLine(Subprogram->getLine(), 0, SrcFile);
// Record the source line but does not create a label for the normal
// function start. It will be emitted at asm emission time. However,
// create a label if this is a beginning of inlined function.
unsigned LabelID = MMI->RecordSourceLine(Subprogram->getLine(), 0, SrcFile);
if (MMI->getSourceLines().size() != 1) {
const TargetInstrDesc &II = TII.get(TargetInstrInfo::DBG_LABEL);
BuildMI(MBB, II).addImm(LabelID);
}
}
return true;
}

View File

@ -1,4 +1,5 @@
; RUN: llvm-as < %s | llc
; RUN: llvm-as < %s | llc -fast
%llvm.dbg.anchor.type = type { i32, i32 }
%llvm.dbg.basictype.type = type { i32, { }*, i8*, { }*, i32, i64, i64, i64, i32, i32 }
%llvm.dbg.compile_unit.type = type { i32, { }*, i32, i8*, i8*, i8* }