You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
2.5 KiB
52 lines
2.5 KiB
4 months ago
|
# RUN: llc -run-pass=mir-debugify -o - %s | FileCheck --check-prefixes=ALL,VALUE %s
|
||
|
# RUN: llc -run-pass=mir-debugify -debugify-level=locations -o - %s | FileCheck --check-prefixes=ALL --implicit-check-not=dbg.value %s
|
||
|
# RUN: llc -run-pass=mir-debugify,mir-strip-debug,mir-debugify -o - %s | FileCheck --check-prefixes=ALL,VALUE %s
|
||
|
--- |
|
||
|
; ModuleID = 'loc-only.ll'
|
||
|
source_filename = "loc-only.ll"
|
||
|
|
||
|
; ALL-LABEL: @test
|
||
|
define i32 @test(i32 %a, i32 %b) {
|
||
|
%add = add i32 %a, 2
|
||
|
; ALL-NEXT: %add = add i32 %a, 2, !dbg [[L1:![0-9]+]]
|
||
|
; VALUE-NEXT: call void @llvm.dbg.value(metadata i32 %add, metadata [[add:![0-9]+]], metadata !DIExpression()), !dbg [[L1]]
|
||
|
%sub = sub i32 %add, %b
|
||
|
; ALL-NEXT: %sub = sub i32 %add, %b, !dbg [[L2:![0-9]+]]
|
||
|
; VALUE-NEXT: call void @llvm.dbg.value(metadata i32 %sub, metadata [[sub:![0-9]+]], metadata !DIExpression()), !dbg [[L2]]
|
||
|
; ALL-NEXT: ret i32 %sub, !dbg [[L3:![0-9]+]]
|
||
|
ret i32 %sub
|
||
|
}
|
||
|
|
||
|
; ALL: !llvm.dbg.cu = !{!0}
|
||
|
; ALL: !llvm.debugify =
|
||
|
; ALL: !llvm.module.flags = !{![[VERSION:[0-9]+]]}
|
||
|
; ALL: !0 = distinct !DICompileUnit(
|
||
|
; ALL: ![[VERSION]] = !{i32 2, !"Debug Info Version", i32 3}
|
||
|
; VALUE: [[VAR1:![0-9]+]] = !DILocalVariable(name: "1"
|
||
|
; VALUE: [[VAR2:![0-9]+]] = !DILocalVariable(name: "2"
|
||
|
|
||
|
...
|
||
|
---
|
||
|
name: test
|
||
|
body: |
|
||
|
bb.1 (%ir-block.0):
|
||
|
%0:_(s32) = IMPLICIT_DEF
|
||
|
%1:_(s32) = IMPLICIT_DEF
|
||
|
%2:_(s32) = G_CONSTANT i32 2
|
||
|
%3:_(s32) = G_ADD %0, %2
|
||
|
%4:_(s32) = G_SUB %3, %1
|
||
|
; There's no attempt to have the locations make sense as it's an imaginary
|
||
|
; source file anyway. These first three coincide with IR-level information
|
||
|
; and therefore use metadata references.
|
||
|
; ALL: %0:_(s32) = IMPLICIT_DEF debug-location [[L1]]
|
||
|
; VALUE: DBG_VALUE %0(s32), $noreg, [[VAR1]], !DIExpression(), debug-location [[L1]]
|
||
|
; ALL: %1:_(s32) = IMPLICIT_DEF debug-location [[L2]]
|
||
|
; VALUE: DBG_VALUE %1(s32), $noreg, [[VAR2]], !DIExpression(), debug-location [[L2]]
|
||
|
; ALL: %2:_(s32) = G_CONSTANT i32 2, debug-location [[L3]]
|
||
|
; VALUE: DBG_VALUE %2(s32), $noreg, [[VAR1]], !DIExpression(), debug-location [[L3]]
|
||
|
; ALL: %3:_(s32) = G_ADD %0, %2, debug-location !DILocation(line: 4, column: 1, scope: !6)
|
||
|
; VALUE: DBG_VALUE %3(s32), $noreg, [[VAR1]], !DIExpression(), debug-location !DILocation(line: 4
|
||
|
; ALL: %4:_(s32) = G_SUB %3, %1, debug-location !DILocation(line: 5, column: 1, scope: !6)
|
||
|
; VALUE: DBG_VALUE %4(s32), $noreg, [[VAR1]], !DIExpression(), debug-location !DILocation(line: 5
|
||
|
...
|