xref: /llvm-project/llvm/test/CodeGen/PowerPC/regalloc-fast-debug-spill.ll (revision 87f57f459e7acbb00a6ca4ee6dec6014c5a97e07)
1*87f57f45SJosh Stone; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2*87f57f45SJosh Stone; RUN: llc -O0 < %s | FileCheck %s
3*87f57f45SJosh Stone
4*87f57f45SJosh Stone; This test would previously crash in RegisterScavenging, or with assertions
5*87f57f45SJosh Stone; enabled it would fail when RegAllocFast calls clearVirtRegs. This was due to
6*87f57f45SJosh Stone; unhandled virt regs in cloned DBG_VALUE_LIST for spills, which are now skipped.
7*87f57f45SJosh Stone; https://github.com/llvm/llvm-project/issues/59172
8*87f57f45SJosh Stone
9*87f57f45SJosh Stonetarget datalayout = "e-m:e-i64:64-n32:64-S128-v256:256:256-v512:512:512"
10*87f57f45SJosh Stonetarget triple = "powerpc64le-unknown-linux-gnu"
11*87f57f45SJosh Stone
12*87f57f45SJosh Stone; Function Attrs: argmemonly nocallback nofree nounwind willreturn
13*87f57f45SJosh Stonedeclare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #0
14*87f57f45SJosh Stone
15*87f57f45SJosh Stone; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn
16*87f57f45SJosh Stonedeclare void @llvm.dbg.value(metadata, metadata, metadata) #1
17*87f57f45SJosh Stone
18*87f57f45SJosh Stonedefine void @read_to_end(i1 %0) personality ptr null {
19*87f57f45SJosh Stone; CHECK-LABEL: read_to_end:
20*87f57f45SJosh Stone; CHECK:       # %bb.0:
21*87f57f45SJosh Stone; CHECK-NEXT:    mflr 0
22*87f57f45SJosh Stone; CHECK-NEXT:    stdu 1, -80(1)
23*87f57f45SJosh Stone; CHECK-NEXT:    std 0, 96(1)
24*87f57f45SJosh Stone; CHECK-NEXT:    .cfi_def_cfa_offset 80
25*87f57f45SJosh Stone; CHECK-NEXT:    .cfi_offset lr, 16
26*87f57f45SJosh Stone; CHECK-NEXT:    andi. 3, 3, 1
27*87f57f45SJosh Stone; CHECK-NEXT:    mfocrf 3, 128
28*87f57f45SJosh Stone; CHECK-NEXT:    rlwinm 3, 3, 1, 0, 0
29*87f57f45SJosh Stone; CHECK-NEXT:    stw 3, 60(1)
30*87f57f45SJosh Stone; CHECK-NEXT:    ld 3, 0(0)
31*87f57f45SJosh Stone; CHECK-NEXT:    std 3, 64(1) # 8-byte Folded Spill
32*87f57f45SJosh Stone; CHECK-NEXT:    li 3, 0
33*87f57f45SJosh Stone; CHECK-NEXT:    std 3, 72(1) # 8-byte Folded Spill
34*87f57f45SJosh Stone; CHECK-NEXT:    #DEBUG_VALUE: spec_extend<u8, alloc::alloc::Global>:iterator <- [DW_OP_LLVM_arg 0, DW_OP_LLVM_arg 1, DW_OP_constu 1, DW_OP_mul, DW_OP_plus, DW_OP_stack_value, DW_OP_LLVM_fragment 64 64] undef, $x3
35*87f57f45SJosh Stone; CHECK-NEXT:    creqv 20, 20, 20
36*87f57f45SJosh Stone; CHECK-NEXT:    crxor 20, 1, 20
37*87f57f45SJosh Stone; CHECK-NEXT:    bc 12, 20, .LBB0_2
38*87f57f45SJosh Stone; CHECK-NEXT:    b .LBB0_1
39*87f57f45SJosh Stone; CHECK-NEXT:  .LBB0_1:
40*87f57f45SJosh Stone; CHECK-NEXT:    addi 1, 1, 80
41*87f57f45SJosh Stone; CHECK-NEXT:    ld 0, 16(1)
42*87f57f45SJosh Stone; CHECK-NEXT:    mtlr 0
43*87f57f45SJosh Stone; CHECK-NEXT:    blr
44*87f57f45SJosh Stone; CHECK-NEXT:  .LBB0_2:
45*87f57f45SJosh Stone; CHECK-NEXT:    ld 5, 72(1) # 8-byte Folded Reload
46*87f57f45SJosh Stone; CHECK-NEXT:    ld 4, 64(1) # 8-byte Folded Reload
47*87f57f45SJosh Stone; CHECK-NEXT:    li 3, 0
48*87f57f45SJosh Stone; CHECK-NEXT:    bl memcpy
49*87f57f45SJosh Stone; CHECK-NEXT:    nop
50*87f57f45SJosh Stone; CHECK-NEXT:    lwz 4, 60(1)
51*87f57f45SJosh Stone; CHECK-NEXT:    # implicit-def: $cr5lt
52*87f57f45SJosh Stone; CHECK-NEXT:    mfocrf 3, 4
53*87f57f45SJosh Stone; CHECK-NEXT:    rlwimi 3, 4, 12, 20, 20
54*87f57f45SJosh Stone; CHECK-NEXT:    mtocrf 4, 3
55*87f57f45SJosh Stone; CHECK-NEXT:    bc 12, 20, .LBB0_4
56*87f57f45SJosh Stone; CHECK-NEXT:    b .LBB0_3
57*87f57f45SJosh Stone; CHECK-NEXT:  .LBB0_3:
58*87f57f45SJosh Stone; CHECK-NEXT:    b .LBB0_4
59*87f57f45SJosh Stone; CHECK-NEXT:  .LBB0_4:
60*87f57f45SJosh Stone; CHECK-NEXT:    addi 1, 1, 80
61*87f57f45SJosh Stone; CHECK-NEXT:    ld 0, 16(1)
62*87f57f45SJosh Stone; CHECK-NEXT:    mtlr 0
63*87f57f45SJosh Stone; CHECK-NEXT:    blr
64*87f57f45SJosh Stone  %2 = load ptr, ptr null, align 8
65*87f57f45SJosh Stone  %3 = sub i64 0, 0
66*87f57f45SJosh Stone  call void @llvm.dbg.value(metadata !DIArgList(ptr %2, i64 %3), metadata !129, metadata !DIExpression(DW_OP_LLVM_arg, 0, DW_OP_LLVM_arg, 1, DW_OP_constu, 1, DW_OP_mul, DW_OP_plus, DW_OP_stack_value, DW_OP_LLVM_fragment, 64, 64)), !dbg !140
67*87f57f45SJosh Stone  br i1 %0, label %4, label %5
68*87f57f45SJosh Stone
69*87f57f45SJosh Stone4:                                                ; preds = %1
70*87f57f45SJosh Stone  ret void
71*87f57f45SJosh Stone
72*87f57f45SJosh Stone5:                                                ; preds = %1
73*87f57f45SJosh Stone  tail call void @llvm.memcpy.p0.p0.i64(ptr null, ptr %2, i64 %3, i1 false)
74*87f57f45SJosh Stone  br i1 %0, label %7, label %6
75*87f57f45SJosh Stone
76*87f57f45SJosh Stone6:                                                ; preds = %5
77*87f57f45SJosh Stone  br label %7
78*87f57f45SJosh Stone
79*87f57f45SJosh Stone7:                                                ; preds = %6, %5
80*87f57f45SJosh Stone  ret void
81*87f57f45SJosh Stone}
82*87f57f45SJosh Stone
83*87f57f45SJosh Stoneattributes #0 = { argmemonly nocallback nofree nounwind willreturn }
84*87f57f45SJosh Stoneattributes #1 = { nocallback nofree nosync nounwind readnone speculatable willreturn }
85*87f57f45SJosh Stone
86*87f57f45SJosh Stone!llvm.module.flags = !{!0}
87*87f57f45SJosh Stone!llvm.dbg.cu = !{!1}
88*87f57f45SJosh Stone
89*87f57f45SJosh Stone!0 = !{i32 2, !"Debug Info Version", i32 3}
90*87f57f45SJosh Stone!1 = distinct !DICompileUnit(language: DW_LANG_Rust, file: !2, producer: "clang LLVM (rustc version 1.67.0-dev)", isOptimized: true, runtimeVersion: 0, emissionKind: FullDebug, enums: !3, globals: !4)
91*87f57f45SJosh Stone!2 = !DIFile(filename: "library/std/src/lib.rs/@/std.ff910444-cgu.11", directory: "/home/jistone/rust")
92*87f57f45SJosh Stone!3 = !{}
93*87f57f45SJosh Stone!4 = !{!5, !12, !18, !23, !28, !34, !43, !49, !52, !58, !64, !68, !77, !81, !86, !90, !98, !102, !106, !111, !117, !124}
94*87f57f45SJosh Stone!5 = !DIGlobalVariableExpression(var: !6, expr: !DIExpression())
95*87f57f45SJosh Stone!6 = distinct !DIGlobalVariable(name: "<alloc::string::String as core::fmt::Write>::{vtable}", scope: null, file: !7, type: !8, isLocal: true, isDefinition: true)
96*87f57f45SJosh Stone!7 = !DIFile(filename: "<unknown>", directory: "")
97*87f57f45SJosh Stone!8 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "<alloc::string::String as core::fmt::Write>::{vtable_type}", file: !7, size: 384, align: 64, flags: DIFlagArtificial, elements: !3, vtableHolder: !9, templateParams: !3, identifier: "1ec913b2a90798f33a12cdc627a17d3d")
98*87f57f45SJosh Stone!9 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "String", scope: !10, file: !7, size: 192, align: 64, elements: !3, templateParams: !3, identifier: "b616ccc9e18737e903266aae12eea82")
99*87f57f45SJosh Stone!10 = !DINamespace(name: "string", scope: !11)
100*87f57f45SJosh Stone!11 = !DINamespace(name: "alloc", scope: null)
101*87f57f45SJosh Stone!12 = !DIGlobalVariableExpression(var: !13, expr: !DIExpression())
102*87f57f45SJosh Stone!13 = distinct !DIGlobalVariable(name: "<core::cell::BorrowMutError as core::fmt::Debug>::{vtable}", scope: null, file: !7, type: !14, isLocal: true, isDefinition: true)
103*87f57f45SJosh Stone!14 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "<core::cell::BorrowMutError as core::fmt::Debug>::{vtable_type}", file: !7, size: 256, align: 64, flags: DIFlagArtificial, elements: !3, vtableHolder: !15, templateParams: !3, identifier: "7f09904511177108b2e94c43effbe403")
104*87f57f45SJosh Stone!15 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "BorrowMutError", scope: !16, file: !7, align: 8, elements: !3, identifier: "acf9edd4524e0ff9a9398905d3ba31a6")
105*87f57f45SJosh Stone!16 = !DINamespace(name: "cell", scope: !17)
106*87f57f45SJosh Stone!17 = !DINamespace(name: "core", scope: null)
107*87f57f45SJosh Stone!18 = !DIGlobalVariableExpression(var: !19, expr: !DIExpression())
108*87f57f45SJosh Stone!19 = distinct !DIGlobalVariable(name: "<core::fmt::Error as core::fmt::Debug>::{vtable}", scope: null, file: !7, type: !20, isLocal: true, isDefinition: true)
109*87f57f45SJosh Stone!20 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "<core::fmt::Error as core::fmt::Debug>::{vtable_type}", file: !7, size: 256, align: 64, flags: DIFlagArtificial, elements: !3, vtableHolder: !21, templateParams: !3, identifier: "84cb7e6d80fc4c532d8f45aaa75a7ae3")
110*87f57f45SJosh Stone!21 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Error", scope: !22, file: !7, align: 8, elements: !3, identifier: "abcb9fb1fe4fda8598a8687b517935b")
111*87f57f45SJosh Stone!22 = !DINamespace(name: "fmt", scope: !17)
112*87f57f45SJosh Stone!23 = !DIGlobalVariableExpression(var: !24, expr: !DIExpression())
113*87f57f45SJosh Stone!24 = distinct !DIGlobalVariable(name: "<core::array::TryFromSliceError as core::fmt::Debug>::{vtable}", scope: null, file: !7, type: !25, isLocal: true, isDefinition: true)
114*87f57f45SJosh Stone!25 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "<core::array::TryFromSliceError as core::fmt::Debug>::{vtable_type}", file: !7, size: 256, align: 64, flags: DIFlagArtificial, elements: !3, vtableHolder: !26, templateParams: !3, identifier: "bafa31943f8233dbf8d2de6a615f899")
115*87f57f45SJosh Stone!26 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "TryFromSliceError", scope: !27, file: !7, align: 8, elements: !3, templateParams: !3, identifier: "2dd7cf8d77337f63be7c7f5feb370b37")
116*87f57f45SJosh Stone!27 = !DINamespace(name: "array", scope: !17)
117*87f57f45SJosh Stone!28 = !DIGlobalVariableExpression(var: !29, expr: !DIExpression())
118*87f57f45SJosh Stone!29 = distinct !DIGlobalVariable(name: "<core::num::error::TryFromIntError as core::fmt::Debug>::{vtable}", scope: null, file: !7, type: !30, isLocal: true, isDefinition: true)
119*87f57f45SJosh Stone!30 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "<core::num::error::TryFromIntError as core::fmt::Debug>::{vtable_type}", file: !7, size: 256, align: 64, flags: DIFlagArtificial, elements: !3, vtableHolder: !31, templateParams: !3, identifier: "3292395ea0f5a7e3e88f36db52eb440c")
120*87f57f45SJosh Stone!31 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "TryFromIntError", scope: !32, file: !7, align: 8, elements: !3, templateParams: !3, identifier: "5b131d57d001578fbf4fb83f2028eb12")
121*87f57f45SJosh Stone!32 = !DINamespace(name: "error", scope: !33)
122*87f57f45SJosh Stone!33 = !DINamespace(name: "num", scope: !17)
123*87f57f45SJosh Stone!34 = !DIGlobalVariableExpression(var: !35, expr: !DIExpression())
124*87f57f45SJosh Stone!35 = distinct !DIGlobalVariable(name: "OUTPUT_CAPTURE_USED", linkageName: "_ZN3std2io5stdio19OUTPUT_CAPTURE_USED17h6bb564f9f9e20f1bE", scope: !36, file: !39, line: 38, type: !40, isLocal: true, isDefinition: true, align: 8)
125*87f57f45SJosh Stone!36 = !DINamespace(name: "stdio", scope: !37)
126*87f57f45SJosh Stone!37 = !DINamespace(name: "io", scope: !38)
127*87f57f45SJosh Stone!38 = !DINamespace(name: "std", scope: null)
128*87f57f45SJosh Stone!39 = !DIFile(filename: "library/std/src/io/stdio.rs", directory: "/home/jistone/rust", checksumkind: CSK_MD5, checksum: "6e6a519ce8370e29f07d850a34a413c1")
129*87f57f45SJosh Stone!40 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "AtomicBool", scope: !41, file: !7, size: 8, align: 8, elements: !3, templateParams: !3, identifier: "c1cddf0305d4e6a98a8ddd4b6fdb5b91")
130*87f57f45SJosh Stone!41 = !DINamespace(name: "atomic", scope: !42)
131*87f57f45SJosh Stone!42 = !DINamespace(name: "sync", scope: !17)
132*87f57f45SJosh Stone!43 = !DIGlobalVariableExpression(var: !44, expr: !DIExpression())
133*87f57f45SJosh Stone!44 = distinct !DIGlobalVariable(name: "INSTANCE", linkageName: "_ZN3std2io5stdio5stdin8INSTANCE17h225ddf7c6608f4aaE", scope: !45, file: !39, line: 320, type: !46, isLocal: true, isDefinition: true, align: 64)
134*87f57f45SJosh Stone!45 = !DINamespace(name: "stdin", scope: !36)
135*87f57f45SJosh Stone!46 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "OnceLock<std::sync::mutex::Mutex<std::io::buffered::bufreader::BufReader<std::io::stdio::StdinRaw>>>", scope: !47, file: !7, size: 448, align: 64, elements: !3, templateParams: !3, identifier: "2236c08b0846b8b2f33c235183822718")
136*87f57f45SJosh Stone!47 = !DINamespace(name: "once_lock", scope: !48)
137*87f57f45SJosh Stone!48 = !DINamespace(name: "sync", scope: !38)
138*87f57f45SJosh Stone!49 = !DIGlobalVariableExpression(var: !50, expr: !DIExpression())
139*87f57f45SJosh Stone!50 = distinct !DIGlobalVariable(name: "STDOUT", linkageName: "_ZN3std2io5stdio6STDOUT17hd8472b9eb112f94aE", scope: !36, file: !39, line: 554, type: !51, isLocal: true, isDefinition: true, align: 64)
140*87f57f45SJosh Stone!51 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "OnceLock<std::sys_common::remutex::ReentrantMutex<core::cell::RefCell<std::io::buffered::linewriter::LineWriter<std::io::stdio::StdoutRaw>>>>", scope: !47, file: !7, size: 512, align: 64, elements: !3, templateParams: !3, identifier: "31535135376bcf9dc80438cb0beaa95")
141*87f57f45SJosh Stone!52 = !DIGlobalVariableExpression(var: !53, expr: !DIExpression())
142*87f57f45SJosh Stone!53 = distinct !DIGlobalVariable(name: "INSTANCE", linkageName: "_ZN3std2io5stdio6stderr8INSTANCE17he81b75fda1609dccE", scope: !54, file: !39, line: 844, type: !55, isLocal: true, isDefinition: true, align: 64)
143*87f57f45SJosh Stone!54 = !DINamespace(name: "stderr", scope: !36)
144*87f57f45SJosh Stone!55 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "ReentrantMutex<core::cell::RefCell<std::io::stdio::StderrRaw>>", scope: !56, file: !7, size: 192, align: 64, elements: !3, templateParams: !3, identifier: "5c48123cbde8afbfd832b70e8bb014b")
145*87f57f45SJosh Stone!56 = !DINamespace(name: "remutex", scope: !57)
146*87f57f45SJosh Stone!57 = !DINamespace(name: "sys_common", scope: !38)
147*87f57f45SJosh Stone!58 = !DIGlobalVariableExpression(var: !59, expr: !DIExpression())
148*87f57f45SJosh Stone!59 = distinct !DIGlobalVariable(name: "<std::io::Write::write_fmt::Adapter<std::io::stdio::StdoutLock> as core::fmt::Write>::{vtable}", scope: null, file: !7, type: !60, isLocal: true, isDefinition: true)
149*87f57f45SJosh Stone!60 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "<std::io::Write::write_fmt::Adapter<std::io::stdio::StdoutLock> as core::fmt::Write>::{vtable_type}", file: !7, size: 384, align: 64, flags: DIFlagArtificial, elements: !3, vtableHolder: !61, templateParams: !3, identifier: "43681bec3eba7b0defb75fd847230ef3")
150*87f57f45SJosh Stone!61 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Adapter<std::io::stdio::StdoutLock>", scope: !62, file: !7, size: 128, align: 64, elements: !3, templateParams: !3, identifier: "eda3cd8f60f00feb7019a3d90d2413dd")
151*87f57f45SJosh Stone!62 = !DINamespace(name: "write_fmt", scope: !63)
152*87f57f45SJosh Stone!63 = !DINamespace(name: "Write", scope: !37)
153*87f57f45SJosh Stone!64 = !DIGlobalVariableExpression(var: !65, expr: !DIExpression())
154*87f57f45SJosh Stone!65 = distinct !DIGlobalVariable(name: "<std::io::Write::write_fmt::Adapter<std::io::stdio::StderrLock> as core::fmt::Write>::{vtable}", scope: null, file: !7, type: !66, isLocal: true, isDefinition: true)
155*87f57f45SJosh Stone!66 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "<std::io::Write::write_fmt::Adapter<std::io::stdio::StderrLock> as core::fmt::Write>::{vtable_type}", file: !7, size: 384, align: 64, flags: DIFlagArtificial, elements: !3, vtableHolder: !67, templateParams: !3, identifier: "2235adf22355a080446df25ada963d8f")
156*87f57f45SJosh Stone!67 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Adapter<std::io::stdio::StderrLock>", scope: !62, file: !7, size: 128, align: 64, elements: !3, templateParams: !3, identifier: "50f418463bae1beffe989359452b170a")
157*87f57f45SJosh Stone!68 = !DIGlobalVariableExpression(var: !69, expr: !DIExpression())
158*87f57f45SJosh Stone!69 = distinct !DIGlobalVariable(name: "__KEY", linkageName: "_ZN3std2io5stdio14OUTPUT_CAPTURE7__getit5__KEY17h82ea5b0c4e81236dE", scope: !70, file: !72, line: 331, type: !73, isLocal: true, isDefinition: true, align: 64)
159*87f57f45SJosh Stone!70 = !DINamespace(name: "__getit", scope: !71)
160*87f57f45SJosh Stone!71 = !DINamespace(name: "OUTPUT_CAPTURE", scope: !36)
161*87f57f45SJosh Stone!72 = !DIFile(filename: "library/std/src/thread/local.rs", directory: "/home/jistone/rust", checksumkind: CSK_MD5, checksum: "e3766fd5751a888dc2040f63031e944e")
162*87f57f45SJosh Stone!73 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Key<core::cell::Cell<core::option::Option<alloc::sync::Arc<std::sync::mutex::Mutex<alloc::vec::Vec<u8, alloc::alloc::Global>>>>>>", scope: !74, file: !7, size: 192, align: 64, elements: !3, templateParams: !3, identifier: "4d1514f685cbd010d7b86d2eef080b6c")
163*87f57f45SJosh Stone!74 = !DINamespace(name: "fast", scope: !75)
164*87f57f45SJosh Stone!75 = !DINamespace(name: "local", scope: !76)
165*87f57f45SJosh Stone!76 = !DINamespace(name: "thread", scope: !38)
166*87f57f45SJosh Stone!77 = !DIGlobalVariableExpression(var: !78, expr: !DIExpression())
167*87f57f45SJosh Stone!78 = distinct !DIGlobalVariable(name: "<i32 as core::fmt::Debug>::{vtable}", scope: null, file: !7, type: !79, isLocal: true, isDefinition: true)
168*87f57f45SJosh Stone!79 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "<i32 as core::fmt::Debug>::{vtable_type}", file: !7, size: 256, align: 64, flags: DIFlagArtificial, elements: !3, vtableHolder: !80, templateParams: !3, identifier: "1a7c0806435616633a284f48de1194c5")
169*87f57f45SJosh Stone!80 = !DIBasicType(name: "i32", size: 32, encoding: DW_ATE_signed)
170*87f57f45SJosh Stone!81 = !DIGlobalVariableExpression(var: !82, expr: !DIExpression())
171*87f57f45SJosh Stone!82 = distinct !DIGlobalVariable(name: "<std::path::PathBuf as core::fmt::Debug>::{vtable}", scope: null, file: !7, type: !83, isLocal: true, isDefinition: true)
172*87f57f45SJosh Stone!83 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "<std::path::PathBuf as core::fmt::Debug>::{vtable_type}", file: !7, size: 256, align: 64, flags: DIFlagArtificial, elements: !3, vtableHolder: !84, templateParams: !3, identifier: "8e82e7dafb168f2995a6711175975a8")
173*87f57f45SJosh Stone!84 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "PathBuf", scope: !85, file: !7, size: 192, align: 64, elements: !3, templateParams: !3, identifier: "85bd755ad2187534379df2cc01ef53a0")
174*87f57f45SJosh Stone!85 = !DINamespace(name: "path", scope: !38)
175*87f57f45SJosh Stone!86 = !DIGlobalVariableExpression(var: !87, expr: !DIExpression())
176*87f57f45SJosh Stone!87 = distinct !DIGlobalVariable(name: "<bool as core::fmt::Debug>::{vtable}", scope: null, file: !7, type: !88, isLocal: true, isDefinition: true)
177*87f57f45SJosh Stone!88 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "<bool as core::fmt::Debug>::{vtable_type}", file: !7, size: 256, align: 64, flags: DIFlagArtificial, elements: !3, vtableHolder: !89, templateParams: !3, identifier: "a8f7c32dd1df279746df60c6d46ce35e")
178*87f57f45SJosh Stone!89 = !DIBasicType(name: "bool", size: 8, encoding: DW_ATE_boolean)
179*87f57f45SJosh Stone!90 = !DIGlobalVariableExpression(var: !91, expr: !DIExpression())
180*87f57f45SJosh Stone!91 = distinct !DIGlobalVariable(name: "STATX_STATE", linkageName: "_ZN3std3sys4unix2fs9try_statx11STATX_STATE17h465ade0d62262837E", scope: !92, file: !96, line: 157, type: !97, isLocal: true, isDefinition: true, align: 8)
181*87f57f45SJosh Stone!92 = !DINamespace(name: "try_statx", scope: !93)
182*87f57f45SJosh Stone!93 = !DINamespace(name: "fs", scope: !94)
183*87f57f45SJosh Stone!94 = !DINamespace(name: "unix", scope: !95)
184*87f57f45SJosh Stone!95 = !DINamespace(name: "sys", scope: !38)
185*87f57f45SJosh Stone!96 = !DIFile(filename: "library/std/src/sys/unix/fs.rs", directory: "/home/jistone/rust", checksumkind: CSK_MD5, checksum: "594559328c68ee77afe955cd571273ee")
186*87f57f45SJosh Stone!97 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "AtomicU8", scope: !41, file: !7, size: 8, align: 8, elements: !3, templateParams: !3, identifier: "dda3b691bea8e1b5292414dd97926af2")
187*87f57f45SJosh Stone!98 = !DIGlobalVariableExpression(var: !99, expr: !DIExpression())
188*87f57f45SJosh Stone!99 = distinct !DIGlobalVariable(name: "<&bool as core::fmt::Debug>::{vtable}", scope: null, file: !7, type: !100, isLocal: true, isDefinition: true)
189*87f57f45SJosh Stone!100 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "<&bool as core::fmt::Debug>::{vtable_type}", file: !7, size: 256, align: 64, flags: DIFlagArtificial, elements: !3, vtableHolder: !101, templateParams: !3, identifier: "5e8d2c48c9cc79c318e2bd28b03e141a")
190*87f57f45SJosh Stone!101 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&bool", baseType: !89, size: 64, align: 64, dwarfAddressSpace: 0)
191*87f57f45SJosh Stone!102 = !DIGlobalVariableExpression(var: !103, expr: !DIExpression())
192*87f57f45SJosh Stone!103 = distinct !DIGlobalVariable(name: "<&i32 as core::fmt::Debug>::{vtable}", scope: null, file: !7, type: !104, isLocal: true, isDefinition: true)
193*87f57f45SJosh Stone!104 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "<&i32 as core::fmt::Debug>::{vtable_type}", file: !7, size: 256, align: 64, flags: DIFlagArtificial, elements: !3, vtableHolder: !105, templateParams: !3, identifier: "d4029746615b6a868ffbc67515d99878")
194*87f57f45SJosh Stone!105 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&i32", baseType: !80, size: 64, align: 64, dwarfAddressSpace: 0)
195*87f57f45SJosh Stone!106 = !DIGlobalVariableExpression(var: !107, expr: !DIExpression())
196*87f57f45SJosh Stone!107 = distinct !DIGlobalVariable(name: "<&u32 as core::fmt::Debug>::{vtable}", scope: null, file: !7, type: !108, isLocal: true, isDefinition: true)
197*87f57f45SJosh Stone!108 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "<&u32 as core::fmt::Debug>::{vtable_type}", file: !7, size: 256, align: 64, flags: DIFlagArtificial, elements: !3, vtableHolder: !109, templateParams: !3, identifier: "178e0e76b9d9178d686381b2d05a7777")
198*87f57f45SJosh Stone!109 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&u32", baseType: !110, size: 64, align: 64, dwarfAddressSpace: 0)
199*87f57f45SJosh Stone!110 = !DIBasicType(name: "u32", size: 32, encoding: DW_ATE_unsigned)
200*87f57f45SJosh Stone!111 = !DIGlobalVariableExpression(var: !112, expr: !DIExpression())
201*87f57f45SJosh Stone!112 = distinct !DIGlobalVariable(name: "<&core::option::Option<std::sys::unix::time::SystemTime> as core::fmt::Debug>::{vtable}", scope: null, file: !7, type: !113, isLocal: true, isDefinition: true)
202*87f57f45SJosh Stone!113 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "<&core::option::Option<std::sys::unix::time::SystemTime> as core::fmt::Debug>::{vtable_type}", file: !7, size: 256, align: 64, flags: DIFlagArtificial, elements: !3, vtableHolder: !114, templateParams: !3, identifier: "7ca8386b4d420d719587fa3255329a7a")
203*87f57f45SJosh Stone!114 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&core::option::Option<std::sys::unix::time::SystemTime>", baseType: !115, size: 64, align: 64, dwarfAddressSpace: 0)
204*87f57f45SJosh Stone!115 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Option<std::sys::unix::time::SystemTime>", scope: !116, file: !7, size: 128, align: 64, elements: !3, templateParams: !3, identifier: "ad8474e495013fa1e3af4a6b53a05f4b")
205*87f57f45SJosh Stone!116 = !DINamespace(name: "option", scope: !17)
206*87f57f45SJosh Stone!117 = !DIGlobalVariableExpression(var: !118, expr: !DIExpression())
207*87f57f45SJosh Stone!118 = distinct !DIGlobalVariable(name: "HAS_CLONE3", linkageName: "_ZN3std3sys4unix7process13process_inner66_$LT$impl$u20$std..sys..unix..process..process_common..Command$GT$7do_fork10HAS_CLONE317h7d23eb353ae1c9a8E", scope: !119, file: !123, line: 148, type: !40, isLocal: true, isDefinition: true, align: 8)
208*87f57f45SJosh Stone!119 = !DINamespace(name: "do_fork", scope: !120)
209*87f57f45SJosh Stone!120 = !DINamespace(name: "{impl#0}", scope: !121)
210*87f57f45SJosh Stone!121 = !DINamespace(name: "process_inner", scope: !122)
211*87f57f45SJosh Stone!122 = !DINamespace(name: "process", scope: !94)
212*87f57f45SJosh Stone!123 = !DIFile(filename: "library/std/src/sys/unix/process/process_unix.rs", directory: "/home/jistone/rust", checksumkind: CSK_MD5, checksum: "91761d638041a5dd66c0a64d968debe6")
213*87f57f45SJosh Stone!124 = !DIGlobalVariableExpression(var: !125, expr: !DIExpression())
214*87f57f45SJosh Stone!125 = distinct !DIGlobalVariable(name: "<core::num::nonzero::NonZeroI32 as core::fmt::Debug>::{vtable}", scope: null, file: !7, type: !126, isLocal: true, isDefinition: true)
215*87f57f45SJosh Stone!126 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "<core::num::nonzero::NonZeroI32 as core::fmt::Debug>::{vtable_type}", file: !7, size: 256, align: 64, flags: DIFlagArtificial, elements: !3, vtableHolder: !127, templateParams: !3, identifier: "13903f30d26ee5869ef7a3fc63a2e03d")
216*87f57f45SJosh Stone!127 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "NonZeroI32", scope: !128, file: !7, size: 32, align: 32, elements: !3, templateParams: !3, identifier: "e292f11a32f1ce5cf3b26864e4a0f5e5")
217*87f57f45SJosh Stone!128 = !DINamespace(name: "nonzero", scope: !33)
218*87f57f45SJosh Stone!129 = !DILocalVariable(name: "iterator", arg: 2, scope: !130, file: !131, line: 83, type: !137)
219*87f57f45SJosh Stone!130 = distinct !DISubprogram(name: "spec_extend<u8, alloc::alloc::Global>", linkageName: "_ZN132_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$alloc..vec..spec_extend..SpecExtend$LT$$RF$T$C$core..slice..iter..Iter$LT$T$GT$$GT$$GT$11spec_extend17hb56b69f474ec1e6dE", scope: !132, file: !131, line: 83, type: !135, scopeLine: 83, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !1, templateParams: !3, retainedNodes: !3)
220*87f57f45SJosh Stone!131 = !DIFile(filename: "library/alloc/src/vec/spec_extend.rs", directory: "/home/jistone/rust", checksumkind: CSK_MD5, checksum: "0614d5dabe9e343254af1b3fa1ec7315")
221*87f57f45SJosh Stone!132 = !DINamespace(name: "{impl#4}", scope: !133)
222*87f57f45SJosh Stone!133 = !DINamespace(name: "spec_extend", scope: !134)
223*87f57f45SJosh Stone!134 = !DINamespace(name: "vec", scope: !11)
224*87f57f45SJosh Stone!135 = distinct !DISubroutineType(types: !136)
225*87f57f45SJosh Stone!136 = !{null}
226*87f57f45SJosh Stone!137 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Iter<u8>", scope: !138, file: !7, size: 128, align: 64, elements: !3, templateParams: !3, identifier: "c31ab6f02ccece1f1a6e93425acabaa1")
227*87f57f45SJosh Stone!138 = !DINamespace(name: "iter", scope: !139)
228*87f57f45SJosh Stone!139 = !DINamespace(name: "slice", scope: !17)
229*87f57f45SJosh Stone!140 = !DILocation(line: 0, scope: !130, inlinedAt: !141)
230*87f57f45SJosh Stone!141 = distinct !DILocation(line: 2392, column: 9, scope: !142, inlinedAt: !146)
231*87f57f45SJosh Stone!142 = distinct !DISubprogram(name: "extend_from_slice<u8, alloc::alloc::Global>", linkageName: "_ZN5alloc3vec16Vec$LT$T$C$A$GT$17extend_from_slice17hbc8d29f2694fd768E", scope: !144, file: !143, line: 2391, type: !145, scopeLine: 2391, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !1, templateParams: !3, retainedNodes: !3)
232*87f57f45SJosh Stone!143 = !DIFile(filename: "library/alloc/src/vec/mod.rs", directory: "/home/jistone/rust", checksumkind: CSK_MD5, checksum: "0d69d0c0c11b3e47364cf6be0d07c829")
233*87f57f45SJosh Stone!144 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: "Vec<u8, alloc::alloc::Global>", scope: !134, file: !7, size: 192, align: 64, elements: !3, templateParams: !3, identifier: "f970dea4d30c1daf847db520fef9390d")
234*87f57f45SJosh Stone!145 = distinct !DISubroutineType(types: !136)
235*87f57f45SJosh Stone!146 = distinct !DILocation(line: 330, column: 9, scope: !147, inlinedAt: !154)
236*87f57f45SJosh Stone!147 = distinct !DILexicalBlock(scope: !149, file: !148, line: 329, column: 9)
237*87f57f45SJosh Stone!148 = !DIFile(filename: "library/std/src/io/buffered/bufreader.rs", directory: "/home/jistone/rust", checksumkind: CSK_MD5, checksum: "5375e06de487f85ee2f6d21c8a84ce7d")
238*87f57f45SJosh Stone!149 = distinct !DISubprogram(name: "read_to_end<std::io::stdio::StdinRaw>", linkageName: "_ZN82_$LT$std..io..buffered..bufreader..BufReader$LT$R$GT$$u20$as$u20$std..io..Read$GT$11read_to_end17h9f09720ee76e6db9E", scope: !150, file: !148, line: 328, type: !153, scopeLine: 328, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !1, templateParams: !3, retainedNodes: !3)
239*87f57f45SJosh Stone!150 = !DINamespace(name: "{impl#3}", scope: !151)
240*87f57f45SJosh Stone!151 = !DINamespace(name: "bufreader", scope: !152)
241*87f57f45SJosh Stone!152 = !DINamespace(name: "buffered", scope: !37)
242*87f57f45SJosh Stone!153 = distinct !DISubroutineType(types: !3)
243*87f57f45SJosh Stone!154 = distinct !DILocation(line: 464, column: 9, scope: !155, inlinedAt: !158)
244*87f57f45SJosh Stone!155 = distinct !DISubprogram(name: "read_to_end", linkageName: "_ZN59_$LT$std..io..stdio..StdinLock$u20$as$u20$std..io..Read$GT$11read_to_end17h38999a681cc6c5b5E", scope: !156, file: !39, line: 463, type: !157, scopeLine: 463, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !1, templateParams: !3, retainedNodes: !3)
245*87f57f45SJosh Stone!156 = !DINamespace(name: "{impl#7}", scope: !36)
246*87f57f45SJosh Stone!157 = distinct !DISubroutineType(types: !3)
247*87f57f45SJosh Stone!158 = distinct !DILocation(line: 430, column: 9, scope: !159)
248*87f57f45SJosh Stone!159 = distinct !DISubprogram(name: "read_to_end", linkageName: "_ZN55_$LT$std..io..stdio..Stdin$u20$as$u20$std..io..Read$GT$11read_to_end17haba70a09681d41d3E", scope: !160, file: !39, line: 429, type: !161, scopeLine: 429, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition | DISPFlagOptimized, unit: !1, templateParams: !3, retainedNodes: !3)
249*87f57f45SJosh Stone!160 = !DINamespace(name: "{impl#5}", scope: !36)
250*87f57f45SJosh Stone!161 = !DISubroutineType(types: !3)
251