Add separators between files in LLVM IR dumps (#7463)

Each file dump now starts with a `; ---` comment and ends with a blank
line. This makes it easier to visually scan the dump for a file of
interest. The comment format is somewhat arbitrary; I chose `---` to
align with the `--- filename.carbon` separator in SemIR dumps, but
without the filename, because that appears on each of the next two lines
already.
This commit is contained in:
Geoff Romer
2026-07-07 16:31:24 +00:00
committed by GitHub
parent e1cf833c45
commit ae3c4266d4
240 changed files with 778 additions and 0 deletions
+2
View File
@@ -29,6 +29,7 @@ fn G() {
F(i32);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'call.carbon'
// CHECK:STDOUT: source_filename = "call.carbon"
// CHECK:STDOUT:
@@ -188,3 +189,4 @@ fn G() {
// CHECK:STDOUT: !54 = !{!55}
// CHECK:STDOUT: !55 = !DILocalVariable(arg: 1, scope: !53, type: !22)
// CHECK:STDOUT: !56 = !DILocation(line: 13, column: 1, scope: !53)
// CHECK:STDOUT:
@@ -55,6 +55,7 @@ fn M() {
let _: f64 = G(p);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'call_basic.carbon'
// CHECK:STDOUT: source_filename = "call_basic.carbon"
// CHECK:STDOUT:
@@ -391,3 +392,4 @@ fn M() {
// CHECK:STDOUT: !114 = !DILocalVariable(arg: 1, scope: !112, type: !7)
// CHECK:STDOUT: !115 = !DILocation(line: 23, column: 10, scope: !112)
// CHECK:STDOUT: !116 = !DILocation(line: 23, column: 3, scope: !112)
// CHECK:STDOUT:
@@ -36,6 +36,7 @@ fn M() -> i32 {
return m;
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'call_basic_depth.carbon'
// CHECK:STDOUT: source_filename = "call_basic_depth.carbon"
// CHECK:STDOUT:
@@ -143,3 +144,4 @@ fn M() -> i32 {
// CHECK:STDOUT: !37 = !DILocalVariable(arg: 1, scope: !35, type: !7)
// CHECK:STDOUT: !38 = !DILocation(line: 20, column: 3, scope: !35)
// CHECK:STDOUT: !39 = !DILocation(line: 21, column: 3, scope: !35)
// CHECK:STDOUT:
@@ -23,6 +23,7 @@ fn M() {
F(ptr_i8);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'call_dedup_ptr.carbon'
// CHECK:STDOUT: source_filename = "call_dedup_ptr.carbon"
// CHECK:STDOUT:
@@ -90,3 +91,4 @@ fn M() {
// CHECK:STDOUT: !21 = !{!22}
// CHECK:STDOUT: !22 = !DILocalVariable(arg: 1, scope: !17, type: !20)
// CHECK:STDOUT: !23 = !DILocation(line: 14, column: 3, scope: !17)
// CHECK:STDOUT:
@@ -40,6 +40,7 @@ fn M() {
F(ptr_f64);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'call_deref_ptr.carbon'
// CHECK:STDOUT: source_filename = "call_deref_ptr.carbon"
// CHECK:STDOUT:
@@ -212,3 +213,4 @@ fn M() {
// CHECK:STDOUT: !65 = !{!66}
// CHECK:STDOUT: !66 = !DILocalVariable(arg: 1, scope: !64, type: !24)
// CHECK:STDOUT: !67 = !DILocation(line: 23, column: 3, scope: !64)
// CHECK:STDOUT:
@@ -37,6 +37,7 @@ fn H() {
G(D);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'call_different_associated_const.carbon'
// CHECK:STDOUT: source_filename = "call_different_associated_const.carbon"
// CHECK:STDOUT:
@@ -94,3 +95,4 @@ fn H() {
// CHECK:STDOUT: !13 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.1ba7ae4c6ee83247", scope: null, file: !1, line: 22, type: !5, spFlags: DISPFlagDefinition, unit: !0)
// CHECK:STDOUT: !14 = !DILocation(line: 23, column: 3, scope: !13)
// CHECK:STDOUT: !15 = !DILocation(line: 22, column: 1, scope: !13)
// CHECK:STDOUT:
@@ -33,6 +33,7 @@ fn Run() {
G(Y);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'call_different_impls.carbon'
// CHECK:STDOUT: source_filename = "call_different_impls.carbon"
// CHECK:STDOUT:
@@ -109,3 +110,4 @@ fn Run() {
// CHECK:STDOUT: !22 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.0b241ec84a68877b", scope: null, file: !1, line: 29, type: !5, spFlags: DISPFlagDefinition, unit: !0)
// CHECK:STDOUT: !23 = !DILocation(line: 29, column: 15, scope: !22)
// CHECK:STDOUT: !24 = !DILocation(line: 29, column: 1, scope: !22)
// CHECK:STDOUT:
@@ -42,6 +42,7 @@ fn Run() {
G(Y);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'call_different_impls_with_const.carbon'
// CHECK:STDOUT: source_filename = "call_different_impls_with_const.carbon"
// CHECK:STDOUT:
@@ -149,3 +150,4 @@ fn Run() {
// CHECK:STDOUT: !31 = distinct !DISubprogram(name: "G", linkageName: "_CG.Main.89fa38d00ffc0e46", scope: null, file: !1, line: 36, type: !27, spFlags: DISPFlagDefinition, unit: !0)
// CHECK:STDOUT: !32 = !DILocation(line: 37, column: 16, scope: !31)
// CHECK:STDOUT: !33 = !DILocation(line: 36, column: 1, scope: !31)
// CHECK:STDOUT:
@@ -44,6 +44,7 @@ fn M(ptr_i32: i32*, ptr_f64: f64*) {
F(ptr_f64);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'call_different_specific.carbon'
// CHECK:STDOUT: source_filename = "call_different_specific.carbon"
// CHECK:STDOUT:
@@ -207,3 +208,4 @@ fn M(ptr_i32: i32*, ptr_f64: f64*) {
// CHECK:STDOUT: !64 = !{!65}
// CHECK:STDOUT: !65 = !DILocalVariable(arg: 1, scope: !63, type: !7)
// CHECK:STDOUT: !66 = !DILocation(line: 30, column: 3, scope: !63)
// CHECK:STDOUT:
@@ -43,6 +43,7 @@ fn G() {
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'call_impl_function.carbon'
// CHECK:STDOUT: source_filename = "call_impl_function.carbon"
// CHECK:STDOUT:
@@ -94,3 +95,4 @@ fn G() {
// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !17, type: !7)
// CHECK:STDOUT: !20 = !DILocation(line: 36, column: 10, scope: !17)
// CHECK:STDOUT: !21 = !DILocation(line: 36, column: 3, scope: !17)
// CHECK:STDOUT:
@@ -22,6 +22,7 @@ fn CallF() -> i32 {
return c.F(n);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'call_method.carbon'
// CHECK:STDOUT: source_filename = "call_method.carbon"
// CHECK:STDOUT:
@@ -109,3 +110,4 @@ fn CallF() -> i32 {
// CHECK:STDOUT: !30 = !DILocalVariable(arg: 1, scope: !26, type: !22)
// CHECK:STDOUT: !31 = !DILocalVariable(arg: 2, scope: !26, type: !7)
// CHECK:STDOUT: !32 = !DILocation(line: 15, column: 5, scope: !26)
// CHECK:STDOUT:
@@ -40,6 +40,7 @@ fn M() {
F(c, 0);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'call_recursive_basic.carbon'
// CHECK:STDOUT: source_filename = "call_recursive_basic.carbon"
// CHECK:STDOUT:
@@ -276,3 +277,4 @@ fn M() {
// CHECK:STDOUT: !88 = !DILocation(line: 25, column: 15, scope: !80)
// CHECK:STDOUT: !89 = !DILocation(line: 25, column: 10, scope: !80)
// CHECK:STDOUT: !90 = !DILocation(line: 25, column: 3, scope: !80)
// CHECK:STDOUT:
@@ -56,6 +56,7 @@ fn M() {
A(ptr_f64, 0);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'call_recursive_diamond.carbon'
// CHECK:STDOUT: source_filename = "call_recursive_diamond.carbon"
// CHECK:STDOUT:
@@ -401,3 +402,4 @@ fn M() {
// CHECK:STDOUT: !137 = !DILocation(line: 44, column: 15, scope: !133)
// CHECK:STDOUT: !138 = !DILocation(line: 44, column: 10, scope: !133)
// CHECK:STDOUT: !139 = !DILocation(line: 44, column: 3, scope: !133)
// CHECK:STDOUT:
@@ -41,6 +41,7 @@ fn Run() {
G(Y, 0);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'call_recursive_impl.carbon'
// CHECK:STDOUT: source_filename = "call_recursive_impl.carbon"
// CHECK:STDOUT:
@@ -151,3 +152,4 @@ fn Run() {
// CHECK:STDOUT: !38 = !DILocation(line: 36, column: 15, scope: !31)
// CHECK:STDOUT: !39 = !DILocation(line: 36, column: 10, scope: !31)
// CHECK:STDOUT: !40 = !DILocation(line: 36, column: 3, scope: !31)
// CHECK:STDOUT:
@@ -41,6 +41,7 @@ fn M() {
F(ptr_f64, 0);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'call_recursive_mutual.carbon'
// CHECK:STDOUT: source_filename = "call_recursive_mutual.carbon"
// CHECK:STDOUT:
@@ -285,3 +286,4 @@ fn M() {
// CHECK:STDOUT: !95 = !DILocation(line: 29, column: 15, scope: !88)
// CHECK:STDOUT: !96 = !DILocation(line: 29, column: 10, scope: !88)
// CHECK:STDOUT: !97 = !DILocation(line: 29, column: 3, scope: !88)
// CHECK:STDOUT:
@@ -31,6 +31,7 @@ fn M() {
F(ptr_f64, ptr_bool, 0);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'call_recursive_reorder.carbon'
// CHECK:STDOUT: source_filename = "call_recursive_reorder.carbon"
// CHECK:STDOUT:
@@ -153,3 +154,4 @@ fn M() {
// CHECK:STDOUT: !44 = !DILocation(line: 19, column: 18, scope: !34)
// CHECK:STDOUT: !45 = !DILocation(line: 19, column: 10, scope: !34)
// CHECK:STDOUT: !46 = !DILocation(line: 19, column: 3, scope: !34)
// CHECK:STDOUT:
@@ -52,6 +52,7 @@ fn M() {
F(ptr_bool, ptr_bool, ptr_bool, 0);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'call_recursive_reorder_more.carbon'
// CHECK:STDOUT: source_filename = "call_recursive_reorder_more.carbon"
// CHECK:STDOUT:
@@ -469,3 +470,4 @@ fn M() {
// CHECK:STDOUT: !182 = !DILocation(line: 19, column: 21, scope: !173)
// CHECK:STDOUT: !183 = !DILocation(line: 19, column: 10, scope: !173)
// CHECK:STDOUT: !184 = !DILocation(line: 19, column: 3, scope: !173)
// CHECK:STDOUT:
@@ -82,6 +82,7 @@ fn M() {
A(ptr_f64, 0);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'call_recursive_sccs_deep.carbon'
// CHECK:STDOUT: source_filename = "call_recursive_sccs_deep.carbon"
// CHECK:STDOUT:
@@ -584,3 +585,4 @@ fn M() {
// CHECK:STDOUT: !207 = !DILocation(line: 69, column: 15, scope: !203)
// CHECK:STDOUT: !208 = !DILocation(line: 69, column: 10, scope: !203)
// CHECK:STDOUT: !209 = !DILocation(line: 69, column: 3, scope: !203)
// CHECK:STDOUT:
@@ -44,6 +44,7 @@ fn M() {
F(C);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'call_specific_in_class.carbon'
// CHECK:STDOUT: source_filename = "call_specific_in_class.carbon"
// CHECK:STDOUT:
@@ -324,3 +325,4 @@ fn M() {
// CHECK:STDOUT: !112 = !DILocalVariable(arg: 1, scope: !110, type: !7)
// CHECK:STDOUT: !113 = !DILocalVariable(arg: 2, scope: !110, type: !7)
// CHECK:STDOUT: !114 = !DILocation(line: 19, column: 5, scope: !110)
// CHECK:STDOUT:
@@ -51,6 +51,7 @@ fn Run() {
let _: i32 = Lib2CallF(1 as i32, 2 as i32);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'lib1.carbon'
// CHECK:STDOUT: source_filename = "lib1.carbon"
// CHECK:STDOUT:
@@ -61,6 +62,8 @@ fn Run() {
// CHECK:STDOUT: !1 = !DIFile(filename: "lib1.carbon", directory: "")
// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5}
// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3}
// CHECK:STDOUT:
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'lib2.carbon'
// CHECK:STDOUT: source_filename = "lib2.carbon"
// CHECK:STDOUT:
@@ -71,6 +74,8 @@ fn Run() {
// CHECK:STDOUT: !1 = !DIFile(filename: "lib2.carbon", directory: "")
// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5}
// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3}
// CHECK:STDOUT:
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'todo_use.carbon'
// CHECK:STDOUT: source_filename = "todo_use.carbon"
// CHECK:STDOUT:
@@ -139,3 +144,4 @@ fn Run() {
// CHECK:STDOUT: !29 = !DILocalVariable(arg: 1, scope: !27, type: !7)
// CHECK:STDOUT: !30 = !DILocalVariable(arg: 2, scope: !27, type: !7)
// CHECK:STDOUT: !31 = !DILocation(line: 5, column: 3, scope: !27)
// CHECK:STDOUT:
@@ -56,6 +56,7 @@ fn Call() -> i32 {
return *p;
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'indirectly_imported.carbon'
// CHECK:STDOUT: source_filename = "indirectly_imported.carbon"
// CHECK:STDOUT:
@@ -80,6 +81,8 @@ fn Call() -> i32 {
// CHECK:STDOUT: !5 = !DISubroutineType(types: !6)
// CHECK:STDOUT: !6 = !{null}
// CHECK:STDOUT: !7 = !DILocation(line: 6, column: 1, scope: !4)
// CHECK:STDOUT:
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'directly_imported.carbon'
// CHECK:STDOUT: source_filename = "directly_imported.carbon"
// CHECK:STDOUT:
@@ -104,6 +107,8 @@ fn Call() -> i32 {
// CHECK:STDOUT: !5 = !DISubroutineType(types: !6)
// CHECK:STDOUT: !6 = !{null}
// CHECK:STDOUT: !7 = !DILocation(line: 8, column: 1, scope: !4)
// CHECK:STDOUT:
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'use.carbon'
// CHECK:STDOUT: source_filename = "use.carbon"
// CHECK:STDOUT:
@@ -202,3 +207,4 @@ fn Call() -> i32 {
// CHECK:STDOUT: !35 = !DILocation(line: 9, column: 3, scope: !31)
// CHECK:STDOUT: !36 = !DILocation(line: 10, column: 3, scope: !31)
// CHECK:STDOUT: !37 = !DILocation(line: 11, column: 3, scope: !31)
// CHECK:STDOUT:
@@ -28,6 +28,7 @@ fn Run() {
F(0);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'lib.carbon'
// CHECK:STDOUT: source_filename = "lib.carbon"
// CHECK:STDOUT:
@@ -53,6 +54,8 @@ fn Run() {
// CHECK:STDOUT: !8 = !{!9}
// CHECK:STDOUT: !9 = !DILocalVariable(arg: 1, scope: !4, type: !7)
// CHECK:STDOUT: !10 = !DILocation(line: 7, column: 3, scope: !4)
// CHECK:STDOUT:
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'main.carbon'
// CHECK:STDOUT: source_filename = "main.carbon"
// CHECK:STDOUT:
@@ -99,3 +102,4 @@ fn Run() {
// CHECK:STDOUT: !13 = !{null}
// CHECK:STDOUT: !14 = !DILocation(line: 7, column: 3, scope: !10)
// CHECK:STDOUT: !15 = !DILocation(line: 4, column: 1, scope: !10)
// CHECK:STDOUT:
@@ -40,6 +40,7 @@ fn Main() {
GenericF(0);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'a.carbon'
// CHECK:STDOUT: source_filename = "a.carbon"
// CHECK:STDOUT:
@@ -87,6 +88,8 @@ fn Main() {
// CHECK:STDOUT: !18 = !{!19}
// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !17, type: !7)
// CHECK:STDOUT: !20 = !DILocation(line: 18, column: 3, scope: !17)
// CHECK:STDOUT:
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'b.carbon'
// CHECK:STDOUT: source_filename = "b.carbon"
// CHECK:STDOUT:
@@ -148,3 +151,4 @@ fn Main() {
// CHECK:STDOUT: !18 = !DILocation(line: 18, column: 16, scope: !9)
// CHECK:STDOUT: !19 = !DILocation(line: 19, column: 10, scope: !9)
// CHECK:STDOUT: !20 = !DILocation(line: 19, column: 3, scope: !9)
// CHECK:STDOUT:
@@ -23,6 +23,7 @@ fn Run() -> i32 {
return F(i32, 0);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'local_function.carbon'
// CHECK:STDOUT: source_filename = "local_function.carbon"
// CHECK:STDOUT:
@@ -72,3 +73,4 @@ fn Run() -> i32 {
// CHECK:STDOUT: !18 = !{!19}
// CHECK:STDOUT: !19 = !DILocalVariable(arg: 1, scope: !17, type: !7)
// CHECK:STDOUT: !20 = !DILocation(line: 18, column: 21, scope: !17)
// CHECK:STDOUT:
@@ -47,6 +47,7 @@ fn Main() {
first(x, x, y);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'reverse_canonical.carbon'
// CHECK:STDOUT: source_filename = "reverse_canonical.carbon"
// CHECK:STDOUT:
@@ -275,3 +276,4 @@ fn Main() {
// CHECK:STDOUT: !95 = !DILocalVariable(arg: 2, scope: !92, type: !17)
// CHECK:STDOUT: !96 = !DILocalVariable(arg: 3, scope: !92, type: !17)
// CHECK:STDOUT: !97 = !DILocation(line: 40, column: 1, scope: !92)
// CHECK:STDOUT:
@@ -82,6 +82,7 @@ fn Main_method_no_template () {
first_function(local1);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'self_canonical.carbon'
// CHECK:STDOUT: source_filename = "self_canonical.carbon"
// CHECK:STDOUT:
@@ -236,3 +237,4 @@ fn Main_method_no_template () {
// CHECK:STDOUT: !58 = !DILocation(line: 40, column: 19, scope: !49)
// CHECK:STDOUT: !59 = !DILocation(line: 40, column: 3, scope: !49)
// CHECK:STDOUT: !60 = !DILocation(line: 35, column: 1, scope: !49)
// CHECK:STDOUT:
@@ -15,6 +15,7 @@ fn F(T:! type) {
let _: T = *p;
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'type_param.carbon'
// CHECK:STDOUT: source_filename = "type_param.carbon"
// CHECK:STDOUT:
@@ -25,3 +26,4 @@ fn F(T:! type) {
// CHECK:STDOUT: !1 = !DIFile(filename: "type_param.carbon", directory: "")
// CHECK:STDOUT: !2 = !{i32 7, !"Dwarf Version", i32 5}
// CHECK:STDOUT: !3 = !{i32 2, !"Debug Info Version", i32 3}
// CHECK:STDOUT:
@@ -74,6 +74,7 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) {
return F(a);
}
// CHECK:STDOUT: ; ---
// CHECK:STDOUT: ; ModuleID = 'type_representation.carbon'
// CHECK:STDOUT: source_filename = "type_representation.carbon"
// CHECK:STDOUT:
@@ -380,3 +381,4 @@ fn F_nested_tuple(a: ((i32, i32), X)) -> ((i32, i32), X) {
// CHECK:STDOUT: !114 = !DILocation(line: 18, column: 14, scope: !110)
// CHECK:STDOUT: !115 = !DILocation(line: 19, column: 10, scope: !110)
// CHECK:STDOUT: !116 = !DILocation(line: 19, column: 3, scope: !110)
// CHECK:STDOUT: