mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
08fbde827c
The debug-use flag must be set exactly for uses on DBG_VALUEs. This is so obvious that it can be trivially inferred while parsing. This will reduce noise when printing while omitting an information that has little value to the user. The parser will keep recognizing the flag for compatibility with old `.mir` files. Differential Revision: https://reviews.llvm.org/D53903 llvm-svn: 345671
54 lines
2.0 KiB
YAML
54 lines
2.0 KiB
YAML
# After adding new debug instruction for labels, it is possible to have
|
|
# debug instructions before DBG_VALUE. When querying DBG_VALUE's slot
|
|
# index using previous instruction and the previous instruction is debug
|
|
# instruction, it will trigger an assertion as using debug instruction
|
|
# to get slot index. This test is to emulate the case when DBG_VALUE's
|
|
# previous instruction is DBG_LABEL in LiveDebugVariables pass.
|
|
#
|
|
# RUN: llc -run-pass=livedebugvars -run-pass=virtregrewriter -o - %s | FileCheck %s
|
|
|
|
--- |
|
|
target triple = "x86_64-unknown-linux-gnu"
|
|
|
|
define i32 @foo(i32 %a, i32 %b) !dbg !4 {
|
|
entry:
|
|
ret i32 0, !dbg !12
|
|
}
|
|
|
|
!llvm.dbg.cu = !{!0}
|
|
!llvm.module.flags = !{!3}
|
|
|
|
!0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
|
|
!1 = !DIFile(filename: "debug-var-slot.c", directory: "./")
|
|
!2 = !{}
|
|
!3 = !{i32 2, !"Debug Info Version", i32 3}
|
|
!4 = distinct !DISubprogram(name: "foo", scope: !1, file: !1, line: 1, type: !5, isLocal: false, isDefinition: true, scopeLine: 2, isOptimized: true, unit: !0, retainedNodes: !2)
|
|
!5 = !DISubroutineType(types: !6)
|
|
!6 = !{!7, !7, !7}
|
|
!7 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
|
|
!8 = !DILabel(scope: !4, name: "top", file: !1, line: 4)
|
|
!9 = !DILocation(line: 4, column: 1, scope: !4)
|
|
!10 = !DILocalVariable(name: "local_var", scope: !4, file: !1, line: 7, type: !7)
|
|
!11 = !DILocation(line: 7, column: 1, scope: !4)
|
|
!12 = !DILocation(line: 8, column: 3, scope: !4)
|
|
!13 = !DILocalVariable(name: "local_var2", scope: !4, file: !1, line: 7, type: !7)
|
|
|
|
...
|
|
---
|
|
name: foo
|
|
tracksRegLiveness: true
|
|
body: |
|
|
bb.0:
|
|
|
|
DBG_VALUE $esi, $noreg, !13, !DIExpression(), debug-location !11
|
|
DBG_LABEL !8, debug-location !9
|
|
DBG_VALUE $edi, $noreg, !10, !DIExpression(), debug-location !11
|
|
RET 0, undef $eax, debug-location !12
|
|
...
|
|
|
|
# CHECK-LABEL: name: foo
|
|
# CHECK: bb.0:
|
|
# CHECK-DAG: DBG_LABEL
|
|
# CHECK-DAG: DBG_VALUE $esi
|
|
# CHECK-DAG: DBG_VALUE $edi
|