mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-29 18:26:05 +00:00

As previously discussed [1], it is sometimes useful to be able to see instruction addresses and debug locations as part of IR dumps. The same applies to MachineInstrs which already dump debug locations but not addresses. Therefore add some flags that can be used to enable dumping of this information. [1] https://discourse.llvm.org/t/small-improvement-to-llvm-debugging-experience/79914 Reviewers: rnk Reviewed By: rnk Pull Request: https://github.com/llvm/llvm-project/pull/127944
21 lines
716 B
LLVM
21 lines
716 B
LLVM
; RUN: opt -S -print-inst-debug-locs < %s | FileCheck %s
|
|
|
|
define weak i32 @foo(i32 %a, i32 %b) !dbg !3 {
|
|
entry:
|
|
; CHECK: call {{.*}} ; foo.c:52
|
|
%sum = call i32 @fastadd(i32 %a, i32 %b), !dbg !DILocation(line: 52, scope: !3)
|
|
; CHECK: ret {{.*}} ; foo.c:53
|
|
ret i32 %sum, !dbg !DILocation(line: 53, scope: !3)
|
|
}
|
|
|
|
declare i32 @fastadd(i32, i32)
|
|
|
|
!llvm.module.flags = !{!0}
|
|
!0 = !{i32 2, !"Debug Info Version", i32 3}
|
|
|
|
!llvm.dbg.cu = !{!1}
|
|
!1 = distinct !DICompileUnit(language: DW_LANG_C99, file: !2, emissionKind: FullDebug)
|
|
!2 = !DIFile(filename: "foo.c", directory: "/path/to/dir")
|
|
!3 = distinct !DISubprogram(file: !2, scope: !2, line: 51, name: "foo", type: !4, unit: !1)
|
|
!4 = !DISubroutineType(types: !{})
|