Ignore DBG_VALUE machine instructions while constructing instruction ranges based on location info.

Machine instruction range consisting of only DBG_VALUE MIs only contributes consecutive labels in assembly output, which is harmless, and empty scope entry in DebugInfo, which confuses debugger tools.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125577 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Devang Patel 2011-02-15 17:56:09 +00:00
parent 6e31b9b8c3
commit d3526eab46
2 changed files with 6 additions and 2 deletions

View File

@ -2708,6 +2708,10 @@ bool DwarfDebug::extractScopeInformation() {
continue;
}
// Ignore DBG_VALUE. It does not contribute any instruction in output.
if (MInsn->isDebugValue())
continue;
if (RangeBeginMI) {
// If we have alread seen a beginning of a instruction range and
// current instruction scope does not match scope of first instruction

View File

@ -44,12 +44,12 @@ declare void @llvm.dbg.value(metadata, i64, metadata) nounwind readnone
; check that variable bar:b value range is appropriately trucated in debug info. Here Ltmp5 is end of
; location range.
;CHECK:Ltmp7
;CHECK:Ltmp6
;CHECK-NEXT: DEBUG_VALUE: bar:b <- undef
;CHECK:Ldebug_loc0:
;CHECK-NEXT: .quad Ltmp
;CHECK-NEXT: .quad Ltmp7
;CHECK-NEXT: .quad Ltmp6
;CHECK-NEXT: .short 1
;CHECK-NEXT: .byte 85
;CHECK-NEXT: .quad 0