Skip to content

Instantly share code, notes, and snippets.

@raphlinus
Created May 31, 2020 19:53
Show Gist options
  • Select an option

  • Save raphlinus/aa3225d226ea653e1f3c50206dce9075 to your computer and use it in GitHub Desktop.

Select an option

Save raphlinus/aa3225d226ea653e1f3c50206dce9075 to your computer and use it in GitHub Desktop.
LLVM IR size comparison
@.str = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1
define i32 @main() #0 {
%1 = alloca i32, align 4
%i = alloca i32, align 4
store i32 0, i32* %1
call void @llvm.dbg.declare(metadata !{i32* %i}, metadata !13), !dbg !15
store i32 0, i32* %i, align 4, !dbg !16
br label %2, !dbg !16
%3 = load i32* %i, align 4, !dbg !17
%4 = icmp slt i32 %3, 10, !dbg !17
br i1 %4, label %5, label %11, !dbg !17
%6 = load i32* %i, align 4, !dbg !20
%7 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0), i32 %6), !dbg !20
br label %8, !dbg !22
%9 = load i32* %i, align 4, !dbg !23
%10 = add nsw i32 %9, 1, !dbg !23
store i32 %10, i32* %i, align 4, !dbg !23
br label %2, !dbg !23
%12 = load i32* %1, !dbg !24
ret i32 %12, !dbg !24
}
declare void @llvm.dbg.declare(metadata, metadata) #1
declare i32 @printf(i8*, ...) #2
attributes #0 = { nounwind uwtable "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
attributes #1 = { nounwind readnone }
attributes #2 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="true" "no-frame-pointer-elim-non-leaf" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "stack-protector-buffer-size"="8" "unsafe-fp-math"="false" "use-soft-float"="false" }
!0 = metadata !{i32 786449, metadata !1, i32 12, metadata !"clang version 3.5.0 (tags/RELEASE_350/final)", i1 false, metadata !"", i32 0, metadata !2, metadata !2, metadata !3, metadata !2, metadata !2, metadata !"", i32 1} ; [ DW_TAG_compile_unit ] [/home/ce/example.c] [DW_LANG_C99]
!1 = metadata !{metadata !"example.c", metadata !"/home/ce"}
!2 = metadata !{}
!3 = metadata !{metadata !4}
!4 = metadata !{i32 786478, metadata !5, metadata !6, metadata !"main", metadata !"main", metadata !"", i32 1, metadata !7, i1 false, i1 true, i32 0, i32 0, null, i32 0, i1 false, i32 ()* @main, null, null, metadata !2, i32 1} ; [ DW_TAG_subprogram ] [line 1] [def] [main]
!5 = metadata !{metadata !"./example.c", metadata !"/home/ce"}
!6 = metadata !{i32 786473, metadata !5} ; [ DW_TAG_file_type ] [/home/ce/./example.c]
!7 = metadata !{i32 786453, i32 0, null, metadata !"", i32 0, i64 0, i64 0, i64 0, i32 0, null, metadata !8, i32 0, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ]
!8 = metadata !{metadata !9}
!9 = metadata !{i32 786468, null, null, metadata !"int", i32 0, i64 32, i64 32, i64 0, i32 0, i32 5} ; [ DW_TAG_base_type ] [int] [line 0, size 32, align 32, offset 0, enc DW_ATE_signed]
!10 = metadata !{i32 2, metadata !"Dwarf Version", i32 4}
!11 = metadata !{i32 2, metadata !"Debug Info Version", i32 1}
!12 = metadata !{metadata !"clang version 3.5.0 (tags/RELEASE_350/final)"}
!13 = metadata !{i32 786688, metadata !14, metadata !"i", metadata !6, i32 2, metadata !9, i32 0, i32 0} ; [ DW_TAG_auto_variable ] [i] [line 2]
!14 = metadata !{i32 786443, metadata !5, metadata !4, i32 2, i32 5, i32 0, i32 0} ; [ DW_TAG_lexical_block ] [/home/ce/./example.c]
!15 = metadata !{i32 2, i32 14, metadata !14, null}
!16 = metadata !{i32 2, i32 10, metadata !14, null}
!17 = metadata !{i32 2, i32 10, metadata !18, null}
!18 = metadata !{i32 786443, metadata !5, metadata !19, i32 2, i32 10, i32 2, i32 3} ; [ DW_TAG_lexical_block ] [/home/ce/./example.c]
!19 = metadata !{i32 786443, metadata !5, metadata !14, i32 2, i32 10, i32 1, i32 2} ; [ DW_TAG_lexical_block ] [/home/ce/./example.c]
!20 = metadata !{i32 3, i32 9, metadata !21, null}
!21 = metadata !{i32 786443, metadata !5, metadata !14, i32 2, i32 34, i32 0, i32 1} ; [ DW_TAG_lexical_block ] [/home/ce/./example.c]
!22 = metadata !{i32 4, i32 5, metadata !21, null}
!23 = metadata !{i32 2, i32 29, metadata !14, null}
!24 = metadata !{i32 5, i32 1, metadata !4, null}
; ModuleID = 'playground.e6co59ml-cgu.0'
source_filename = "playground.e6co59ml-cgu.0"
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
%"core::result::Result<u32, core::num::TryFromIntError>::Ok" = type { [1 x i32], i32, [0 x i32] }
%"core::option::Option<i32>::Some" = type { [1 x i32], i32, [0 x i32] }
%"core::fmt::Formatter" = type { [0 x i64], { i64, i64 }, [0 x i64], { i64, i64 }, [0 x i64], { {}*, [3 x i64]* }, [0 x i32], i32, [0 x i32], i32, [0 x i8], i8, [7 x i8] }
%"core::fmt::::Opaque" = type {}
%"core::fmt::Arguments" = type { [0 x i64], { [0 x { [0 x i8]*, i64 }]*, i64 }, [0 x i64], { i64*, i64 }, [0 x i64], { [0 x { i8*, i8* }]*, i64 }, [0 x i64] }
%"core::mem::manually_drop::ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>" = type { [0 x i64], %"core::ptr::swap_nonoverlapping_bytes::UnalignedBlock", [0 x i64] }
%"core::ptr::swap_nonoverlapping_bytes::UnalignedBlock" = type { [0 x i64], i64, [0 x i64], i64, [0 x i64], i64, [0 x i64], i64, [0 x i64] }
%"core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>" = type { [4 x i64] }
%"core::result::Result<u32, core::num::TryFromIntError>::Err" = type { [4 x i8], %"core::num::TryFromIntError", [0 x i8] }
%"core::num::TryFromIntError" = type { [0 x i8], {}, [0 x i8] }
%"unwind::libunwind::_Unwind_Exception" = type { [0 x i64], i64, [0 x i64], void (i32, %"unwind::libunwind::_Unwind_Exception"*)*, [0 x i64], [6 x i64], [0 x i64] }
%"unwind::libunwind::_Unwind_Context" = type { [0 x i8] }
@vtable.0 = private unnamed_addr constant { void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* } { void (i8**)* @_ZN4core3ptr13drop_in_place17hb7f00348eda9b683E, i64 8, i64 8, i32 (i8**)* @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17ha5412e4ff1299b77E", i32 (i8**)* @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17ha5412e4ff1299b77E", i32 (i8**)* @"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17ha18773bce9637d1bE" }, align 8, !dbg !0
@0 = private unnamed_addr constant <{ [0 x i8] }> zeroinitializer, align 1
@1 = private unnamed_addr constant <{ [1 x i8] }> <{ [1 x i8] c"\0A" }>, align 1
@2 = private unnamed_addr constant <{ i8*, [8 x i8], i8*, [8 x i8] }> <{ i8* getelementptr inbounds (<{ [0 x i8] }>, <{ [0 x i8] }>* @0, i32 0, i32 0, i32 0), [8 x i8] zeroinitializer, i8* getelementptr inbounds (<{ [1 x i8] }>, <{ [1 x i8] }>* @1, i32 0, i32 0, i32 0), [8 x i8] c"\01\00\00\00\00\00\00\00" }>, align 8
@3 = private unnamed_addr constant <{ i8*, [0 x i8] }> <{ i8* bitcast (<{ i8*, [8 x i8], i8*, [8 x i8] }>* @2 to i8*), [0 x i8] zeroinitializer }>, align 8
@__rustc_debug_gdb_scripts_section__ = linkonce_odr unnamed_addr constant [34 x i8] c"\01gdb_load_rust_pretty_printers.py\00", section ".debug_gdb_scripts", align 1
; std::rt::lang_start
; Function Attrs: nonlazybind uwtable
define hidden i64 @_ZN3std2rt10lang_start17h4e98f7fdca68e89dE(void ()* nonnull %main, i64 %argc, i8** %argv) unnamed_addr #0 !dbg !38 {
start:
%argv.dbg.spill = alloca i8**, align 8
%argc.dbg.spill = alloca i64, align 8
%main.dbg.spill = alloca void ()*, align 8
%_7 = alloca i8*, align 8
store void ()* %main, void ()** %main.dbg.spill, align 8
call void @llvm.dbg.declare(metadata void ()** %main.dbg.spill, metadata !46, metadata !DIExpression()), !dbg !52
store i64 %argc, i64* %argc.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i64* %argc.dbg.spill, metadata !47, metadata !DIExpression()), !dbg !53
store i8** %argv, i8*** %argv.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i8*** %argv.dbg.spill, metadata !48, metadata !DIExpression()), !dbg !54
%0 = bitcast i8** %_7 to void ()**, !dbg !55
store void ()* %main, void ()** %0, align 8, !dbg !55
%_4.0 = bitcast i8** %_7 to {}*, !dbg !56
; call std::rt::lang_start_internal
%1 = call i64 @_ZN3std2rt19lang_start_internal17hcea4e704875ab132E({}* nonnull align 1 %_4.0, [3 x i64]* noalias readonly align 8 dereferenceable(24) bitcast ({ void (i8**)*, i64, i64, i32 (i8**)*, i32 (i8**)*, i32 (i8**)* }* @vtable.0 to [3 x i64]*), i64 %argc, i8** %argv), !dbg !57
br label %bb1, !dbg !57
bb1: ; preds = %start
ret i64 %1, !dbg !58
}
; std::rt::lang_start::{{closure}}
; Function Attrs: nonlazybind uwtable
define internal i32 @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17ha5412e4ff1299b77E"(i8** noalias readonly align 8 dereferenceable(8) %_1) unnamed_addr #0 !dbg !59 {
start:
%_1.dbg.spill = alloca i8**, align 8
store i8** %_1, i8*** %_1.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i8*** %_1.dbg.spill, metadata !65, metadata !DIExpression(DW_OP_deref)), !dbg !66
%0 = bitcast i8** %_1 to void ()**, !dbg !67
%_3 = load void ()*, void ()** %0, align 8, !dbg !67, !nonnull !4
call void %_3(), !dbg !67
br label %bb1, !dbg !67
bb1: ; preds = %start
; call <() as std::process::Termination>::report
%1 = call i32 @"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17hb299261025355cbfE"(), !dbg !67
br label %bb2, !dbg !67
bb2: ; preds = %bb1
ret i32 %1, !dbg !68
}
; std::sys::unix::process::process_common::ExitCode::as_i32
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32 @_ZN3std3sys4unix7process14process_common8ExitCode6as_i3217h7ec8f604402542d5E(i8* noalias readonly align 1 dereferenceable(1) %self) unnamed_addr #1 !dbg !69 {
start:
%self.dbg.spill = alloca i8*, align 8
store i8* %self, i8** %self.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i8** %self.dbg.spill, metadata !82, metadata !DIExpression()), !dbg !83
%_2 = load i8, i8* %self, align 1, !dbg !84
%0 = zext i8 %_2 to i32, !dbg !84
ret i32 %0, !dbg !85
}
; <i32 as core::iter::range::Step>::add_usize
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i32, i32 } @"_ZN47_$LT$i32$u20$as$u20$core..iter..range..Step$GT$9add_usize17h58f32b59aa6ed552E"(i32* noalias readonly align 4 dereferenceable(4) %self, i64 %n) unnamed_addr #1 !dbg !86 {
start:
%wrapped.dbg.spill = alloca i32, align 4
%n_as_unsigned.dbg.spill = alloca i32, align 4
%n.dbg.spill = alloca i64, align 8
%self.dbg.spill = alloca i32*, align 8
%_3 = alloca { i32, i32 }, align 4
%0 = alloca { i32, i32 }, align 4
store i32* %self, i32** %self.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %self.dbg.spill, metadata !111, metadata !DIExpression()), !dbg !117
store i64 %n, i64* %n.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i64* %n.dbg.spill, metadata !112, metadata !DIExpression()), !dbg !118
; call core::convert::num::ptr_try_from_impls::<impl core::convert::TryFrom<usize> for u32>::try_from
%1 = call { i32, i32 } @"_ZN4core7convert3num18ptr_try_from_impls69_$LT$impl$u20$core..convert..TryFrom$LT$usize$GT$$u20$for$u20$u32$GT$8try_from17h54cce386fc926767E"(i64 %n), !dbg !119
store { i32, i32 } %1, { i32, i32 }* %_3, align 4, !dbg !119
br label %bb1, !dbg !119
bb1: ; preds = %start
%2 = bitcast { i32, i32 }* %_3 to i32*, !dbg !120
%3 = load i32, i32* %2, align 4, !dbg !120, !range !121
%_5 = zext i32 %3 to i64, !dbg !120
switch i64 %_5, label %bb3 [
i64 0, label %bb4
i64 1, label %bb2
], !dbg !120
bb2: ; preds = %bb1
%4 = bitcast { i32, i32 }* %0 to i32*, !dbg !122
store i32 0, i32* %4, align 4, !dbg !122
br label %bb9, !dbg !123
bb3: ; preds = %bb1
unreachable, !dbg !119
bb4: ; preds = %bb1
%5 = bitcast { i32, i32 }* %_3 to %"core::result::Result<u32, core::num::TryFromIntError>::Ok"*, !dbg !124
%6 = getelementptr inbounds %"core::result::Result<u32, core::num::TryFromIntError>::Ok", %"core::result::Result<u32, core::num::TryFromIntError>::Ok"* %5, i32 0, i32 1, !dbg !124
%n_as_unsigned = load i32, i32* %6, align 4, !dbg !124
store i32 %n_as_unsigned, i32* %n_as_unsigned.dbg.spill, align 4, !dbg !124
call void @llvm.dbg.declare(metadata i32* %n_as_unsigned.dbg.spill, metadata !113, metadata !DIExpression()), !dbg !125
%_10 = load i32, i32* %self, align 4, !dbg !126
; call core::num::<impl u32>::wrapping_add
%_8 = call i32 @"_ZN4core3num21_$LT$impl$u20$u32$GT$12wrapping_add17h8e1cf463cd9881b5E"(i32 %_10, i32 %n_as_unsigned), !dbg !127
br label %bb5, !dbg !127
bb5: ; preds = %bb4
store i32 %_8, i32* %wrapped.dbg.spill, align 4, !dbg !127
call void @llvm.dbg.declare(metadata i32* %wrapped.dbg.spill, metadata !115, metadata !DIExpression()), !dbg !128
%_14 = load i32, i32* %self, align 4, !dbg !129
%_12 = icmp sge i32 %_8, %_14, !dbg !130
br i1 %_12, label %bb7, label %bb6, !dbg !131
bb6: ; preds = %bb5
%7 = bitcast { i32, i32 }* %0 to i32*, !dbg !132
store i32 0, i32* %7, align 4, !dbg !132
br label %bb8, !dbg !131
bb7: ; preds = %bb5
%8 = bitcast { i32, i32 }* %0 to %"core::option::Option<i32>::Some"*, !dbg !133
%9 = getelementptr inbounds %"core::option::Option<i32>::Some", %"core::option::Option<i32>::Some"* %8, i32 0, i32 1, !dbg !133
store i32 %_8, i32* %9, align 4, !dbg !133
%10 = bitcast { i32, i32 }* %0 to i32*, !dbg !133
store i32 1, i32* %10, align 4, !dbg !133
br label %bb8, !dbg !131
bb8: ; preds = %bb6, %bb7
br label %bb9, !dbg !123
bb9: ; preds = %bb8, %bb2
%11 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %0, i32 0, i32 0, !dbg !134
%12 = load i32, i32* %11, align 4, !dbg !134, !range !121
%13 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %0, i32 0, i32 1, !dbg !134
%14 = load i32, i32* %13, align 4, !dbg !134
%15 = insertvalue { i32, i32 } undef, i32 %12, 0, !dbg !134
%16 = insertvalue { i32, i32 } %15, i32 %14, 1, !dbg !134
ret { i32, i32 } %16, !dbg !134
}
; core::intrinsics::copy_nonoverlapping
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @_ZN4core10intrinsics19copy_nonoverlapping17hc0c4590bff1ea0f7E(i32* %src, i32* %dst, i64 %count) unnamed_addr #1 !dbg !135 {
start:
%count.dbg.spill = alloca i64, align 8
%dst.dbg.spill = alloca i32*, align 8
%src.dbg.spill = alloca i32*, align 8
store i32* %src, i32** %src.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %src.dbg.spill, metadata !143, metadata !DIExpression()), !dbg !146
store i32* %dst, i32** %dst.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %dst.dbg.spill, metadata !144, metadata !DIExpression()), !dbg !147
store i64 %count, i64* %count.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i64* %count.dbg.spill, metadata !145, metadata !DIExpression()), !dbg !148
%0 = mul i64 4, %count, !dbg !149
%1 = bitcast i32* %dst to i8*, !dbg !149
%2 = bitcast i32* %src to i8*, !dbg !149
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %1, i8* align 4 %2, i64 %0, i1 false), !dbg !149
br label %bb1, !dbg !149
bb1: ; preds = %start
ret void, !dbg !150
}
; core::intrinsics::copy_nonoverlapping
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @_ZN4core10intrinsics19copy_nonoverlapping17hf8deb65fbe0d5b49E(i8* %src, i8* %dst, i64 %count) unnamed_addr #1 !dbg !151 {
start:
%count.dbg.spill = alloca i64, align 8
%dst.dbg.spill = alloca i8*, align 8
%src.dbg.spill = alloca i8*, align 8
store i8* %src, i8** %src.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i8** %src.dbg.spill, metadata !156, metadata !DIExpression()), !dbg !161
store i8* %dst, i8** %dst.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i8** %dst.dbg.spill, metadata !157, metadata !DIExpression()), !dbg !162
store i64 %count, i64* %count.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i64* %count.dbg.spill, metadata !158, metadata !DIExpression()), !dbg !163
%0 = mul i64 1, %count, !dbg !164
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 1 %dst, i8* align 1 %src, i64 %0, i1 false), !dbg !164
br label %bb1, !dbg !164
bb1: ; preds = %start
ret void, !dbg !165
}
; core::cmp::impls::<impl core::cmp::PartialOrd for i32>::lt
; Function Attrs: inlinehint nonlazybind uwtable
define internal zeroext i1 @"_ZN4core3cmp5impls55_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$i32$GT$2lt17h6242e978760dcbacE"(i32* noalias readonly align 4 dereferenceable(4) %self, i32* noalias readonly align 4 dereferenceable(4) %other) unnamed_addr #1 !dbg !166 {
start:
%other.dbg.spill = alloca i32*, align 8
%self.dbg.spill = alloca i32*, align 8
store i32* %self, i32** %self.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %self.dbg.spill, metadata !175, metadata !DIExpression()), !dbg !177
store i32* %other, i32** %other.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %other.dbg.spill, metadata !176, metadata !DIExpression()), !dbg !178
%_3 = load i32, i32* %self, align 4, !dbg !179
%_4 = load i32, i32* %other, align 4, !dbg !180
%0 = icmp slt i32 %_3, %_4, !dbg !179
ret i1 %0, !dbg !181
}
; core::fmt::ArgumentV1::new
; Function Attrs: nonlazybind uwtable
define internal { i8*, i8* } @_ZN4core3fmt10ArgumentV13new17h51e098059b2fc3dcE(i32* noalias readonly align 4 dereferenceable(4) %x, i1 (i32*, %"core::fmt::Formatter"*)* nonnull %f) unnamed_addr #0 !dbg !182 {
start:
%0 = alloca %"core::fmt::::Opaque"*, align 8
%1 = alloca i1 (%"core::fmt::::Opaque"*, %"core::fmt::Formatter"*)*, align 8
%f.dbg.spill = alloca i1 (i32*, %"core::fmt::Formatter"*)*, align 8
%x.dbg.spill = alloca i32*, align 8
%2 = alloca { i8*, i8* }, align 8
store i32* %x, i32** %x.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %x.dbg.spill, metadata !231, metadata !DIExpression()), !dbg !233
store i1 (i32*, %"core::fmt::Formatter"*)* %f, i1 (i32*, %"core::fmt::Formatter"*)** %f.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i1 (i32*, %"core::fmt::Formatter"*)** %f.dbg.spill, metadata !232, metadata !DIExpression()), !dbg !234
%3 = bitcast i1 (%"core::fmt::::Opaque"*, %"core::fmt::Formatter"*)** %1 to i1 (i32*, %"core::fmt::Formatter"*)**, !dbg !235
store i1 (i32*, %"core::fmt::Formatter"*)* %f, i1 (i32*, %"core::fmt::Formatter"*)** %3, align 8, !dbg !235
%_3 = load i1 (%"core::fmt::::Opaque"*, %"core::fmt::Formatter"*)*, i1 (%"core::fmt::::Opaque"*, %"core::fmt::Formatter"*)** %1, align 8, !dbg !235, !nonnull !4
br label %bb1, !dbg !235
bb1: ; preds = %start
%4 = bitcast %"core::fmt::::Opaque"** %0 to i32**, !dbg !236
store i32* %x, i32** %4, align 8, !dbg !236
%_5 = load %"core::fmt::::Opaque"*, %"core::fmt::::Opaque"** %0, align 8, !dbg !236, !nonnull !4
br label %bb2, !dbg !236
bb2: ; preds = %bb1
%5 = bitcast { i8*, i8* }* %2 to %"core::fmt::::Opaque"**, !dbg !237
store %"core::fmt::::Opaque"* %_5, %"core::fmt::::Opaque"** %5, align 8, !dbg !237
%6 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %2, i32 0, i32 1, !dbg !237
%7 = bitcast i8** %6 to i1 (%"core::fmt::::Opaque"*, %"core::fmt::Formatter"*)**, !dbg !237
store i1 (%"core::fmt::::Opaque"*, %"core::fmt::Formatter"*)* %_3, i1 (%"core::fmt::::Opaque"*, %"core::fmt::Formatter"*)** %7, align 8, !dbg !237
%8 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %2, i32 0, i32 0, !dbg !238
%9 = load i8*, i8** %8, align 8, !dbg !238, !nonnull !4
%10 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %2, i32 0, i32 1, !dbg !238
%11 = load i8*, i8** %10, align 8, !dbg !238, !nonnull !4
%12 = insertvalue { i8*, i8* } undef, i8* %9, 0, !dbg !238
%13 = insertvalue { i8*, i8* } %12, i8* %11, 1, !dbg !238
ret { i8*, i8* } %13, !dbg !238
}
; core::fmt::Arguments::new_v1
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @_ZN4core3fmt9Arguments6new_v117h9bb77bc3dfdd6e76E(%"core::fmt::Arguments"* noalias nocapture sret dereferenceable(48), [0 x { [0 x i8]*, i64 }]* noalias nonnull readonly align 8 %pieces.0, i64 %pieces.1, [0 x { i8*, i8* }]* noalias nonnull readonly align 8 %args.0, i64 %args.1) unnamed_addr #1 !dbg !239 {
start:
%args.dbg.spill = alloca { [0 x { i8*, i8* }]*, i64 }, align 8
%pieces.dbg.spill = alloca { [0 x { [0 x i8]*, i64 }]*, i64 }, align 8
%_4 = alloca { i64*, i64 }, align 8
%1 = getelementptr inbounds { [0 x { [0 x i8]*, i64 }]*, i64 }, { [0 x { [0 x i8]*, i64 }]*, i64 }* %pieces.dbg.spill, i32 0, i32 0
store [0 x { [0 x i8]*, i64 }]* %pieces.0, [0 x { [0 x i8]*, i64 }]** %1, align 8
%2 = getelementptr inbounds { [0 x { [0 x i8]*, i64 }]*, i64 }, { [0 x { [0 x i8]*, i64 }]*, i64 }* %pieces.dbg.spill, i32 0, i32 1
store i64 %pieces.1, i64* %2, align 8
call void @llvm.dbg.declare(metadata { [0 x { [0 x i8]*, i64 }]*, i64 }* %pieces.dbg.spill, metadata !305, metadata !DIExpression()), !dbg !307
%3 = getelementptr inbounds { [0 x { i8*, i8* }]*, i64 }, { [0 x { i8*, i8* }]*, i64 }* %args.dbg.spill, i32 0, i32 0
store [0 x { i8*, i8* }]* %args.0, [0 x { i8*, i8* }]** %3, align 8
%4 = getelementptr inbounds { [0 x { i8*, i8* }]*, i64 }, { [0 x { i8*, i8* }]*, i64 }* %args.dbg.spill, i32 0, i32 1
store i64 %args.1, i64* %4, align 8
call void @llvm.dbg.declare(metadata { [0 x { i8*, i8* }]*, i64 }* %args.dbg.spill, metadata !306, metadata !DIExpression()), !dbg !308
%5 = bitcast { i64*, i64 }* %_4 to {}**, !dbg !309
store {}* null, {}** %5, align 8, !dbg !309
%6 = bitcast %"core::fmt::Arguments"* %0 to { [0 x { [0 x i8]*, i64 }]*, i64 }*, !dbg !310
%7 = getelementptr inbounds { [0 x { [0 x i8]*, i64 }]*, i64 }, { [0 x { [0 x i8]*, i64 }]*, i64 }* %6, i32 0, i32 0, !dbg !310
store [0 x { [0 x i8]*, i64 }]* %pieces.0, [0 x { [0 x i8]*, i64 }]** %7, align 8, !dbg !310
%8 = getelementptr inbounds { [0 x { [0 x i8]*, i64 }]*, i64 }, { [0 x { [0 x i8]*, i64 }]*, i64 }* %6, i32 0, i32 1, !dbg !310
store i64 %pieces.1, i64* %8, align 8, !dbg !310
%9 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %0, i32 0, i32 3, !dbg !310
%10 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %_4, i32 0, i32 0, !dbg !310
%11 = load i64*, i64** %10, align 8, !dbg !310
%12 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %_4, i32 0, i32 1, !dbg !310
%13 = load i64, i64* %12, align 8, !dbg !310
%14 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %9, i32 0, i32 0, !dbg !310
store i64* %11, i64** %14, align 8, !dbg !310
%15 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %9, i32 0, i32 1, !dbg !310
store i64 %13, i64* %15, align 8, !dbg !310
%16 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %0, i32 0, i32 5, !dbg !310
%17 = getelementptr inbounds { [0 x { i8*, i8* }]*, i64 }, { [0 x { i8*, i8* }]*, i64 }* %16, i32 0, i32 0, !dbg !310
store [0 x { i8*, i8* }]* %args.0, [0 x { i8*, i8* }]** %17, align 8, !dbg !310
%18 = getelementptr inbounds { [0 x { i8*, i8* }]*, i64 }, { [0 x { i8*, i8* }]*, i64 }* %16, i32 0, i32 1, !dbg !310
store i64 %args.1, i64* %18, align 8, !dbg !310
ret void, !dbg !311
}
; core::mem::swap
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @_ZN4core3mem4swap17he16b24ad0b897db6E(i32* align 4 dereferenceable(4) %x, i32* align 4 dereferenceable(4) %y) unnamed_addr #1 !dbg !312 {
start:
%y.dbg.spill = alloca i32*, align 8
%x.dbg.spill = alloca i32*, align 8
store i32* %x, i32** %x.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %x.dbg.spill, metadata !319, metadata !DIExpression()), !dbg !321
store i32* %y, i32** %y.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %y.dbg.spill, metadata !320, metadata !DIExpression()), !dbg !322
; call core::ptr::swap_nonoverlapping_one
call void @_ZN4core3ptr23swap_nonoverlapping_one17he6fda9b6a548efdfE(i32* %x, i32* %y), !dbg !323
br label %bb1, !dbg !323
bb1: ; preds = %start
ret void, !dbg !324
}
; core::num::<impl u32>::wrapping_add
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32 @"_ZN4core3num21_$LT$impl$u20$u32$GT$12wrapping_add17h8e1cf463cd9881b5E"(i32 %self, i32 %rhs) unnamed_addr #1 !dbg !325 {
start:
%0 = alloca i32, align 4
%rhs.dbg.spill = alloca i32, align 4
%self.dbg.spill = alloca i32, align 4
store i32 %self, i32* %self.dbg.spill, align 4
call void @llvm.dbg.declare(metadata i32* %self.dbg.spill, metadata !332, metadata !DIExpression()), !dbg !334
store i32 %rhs, i32* %rhs.dbg.spill, align 4
call void @llvm.dbg.declare(metadata i32* %rhs.dbg.spill, metadata !333, metadata !DIExpression()), !dbg !335
%1 = add i32 %self, %rhs, !dbg !336
store i32 %1, i32* %0, align 4, !dbg !336
%2 = load i32, i32* %0, align 4, !dbg !336
br label %bb1, !dbg !336
bb1: ; preds = %start
ret i32 %2, !dbg !337
}
; core::ops::function::FnOnce::call_once{{vtable.shim}}
; Function Attrs: nonlazybind uwtable
define internal i32 @"_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17ha18773bce9637d1bE"(i8** %_1) unnamed_addr #0 !dbg !338 {
start:
%_1.dbg.spill = alloca i8**, align 8
%_2 = alloca {}, align 1
store i8** %_1, i8*** %_1.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i8*** %_1.dbg.spill, metadata !347, metadata !DIExpression()), !dbg !352
call void @llvm.dbg.declare(metadata {}* %_2, metadata !348, metadata !DIExpression()), !dbg !352
%0 = load i8*, i8** %_1, align 8, !dbg !352, !nonnull !4
; call core::ops::function::FnOnce::call_once
%1 = call i32 @_ZN4core3ops8function6FnOnce9call_once17hf39813048d37b602E(i8* nonnull %0), !dbg !352
br label %bb1, !dbg !352
bb1: ; preds = %start
ret i32 %1, !dbg !352
}
; core::ops::function::FnOnce::call_once
; Function Attrs: nonlazybind uwtable
define internal i32 @_ZN4core3ops8function6FnOnce9call_once17hf39813048d37b602E(i8* nonnull) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality !dbg !353 {
start:
%1 = alloca { i8*, i32 }, align 8
%_2 = alloca {}, align 1
%_1 = alloca i8*, align 8
store i8* %0, i8** %_1, align 8
call void @llvm.dbg.declare(metadata i8** %_1, metadata !357, metadata !DIExpression()), !dbg !359
call void @llvm.dbg.declare(metadata {}* %_2, metadata !358, metadata !DIExpression()), !dbg !359
; invoke std::rt::lang_start::{{closure}}
%2 = invoke i32 @"_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17ha5412e4ff1299b77E"(i8** noalias readonly align 8 dereferenceable(8) %_1)
to label %bb1 unwind label %cleanup, !dbg !359
bb1: ; preds = %start
br label %bb2, !dbg !359
bb2: ; preds = %bb1
ret i32 %2, !dbg !359
bb3: ; preds = %cleanup
br label %bb4, !dbg !359
bb4: ; preds = %bb3
%3 = bitcast { i8*, i32 }* %1 to i8**, !dbg !359
%4 = load i8*, i8** %3, align 8, !dbg !359
%5 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %1, i32 0, i32 1, !dbg !359
%6 = load i32, i32* %5, align 8, !dbg !359
%7 = insertvalue { i8*, i32 } undef, i8* %4, 0, !dbg !359
%8 = insertvalue { i8*, i32 } %7, i32 %6, 1, !dbg !359
resume { i8*, i32 } %8, !dbg !359
cleanup: ; preds = %start
%9 = landingpad { i8*, i32 }
cleanup
%10 = extractvalue { i8*, i32 } %9, 0
%11 = extractvalue { i8*, i32 } %9, 1
%12 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %1, i32 0, i32 0
store i8* %10, i8** %12, align 8
%13 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %1, i32 0, i32 1
store i32 %11, i32* %13, align 8
br label %bb3
}
; core::ptr::drop_in_place
; Function Attrs: nonlazybind uwtable
define internal void @_ZN4core3ptr13drop_in_place17hb7f00348eda9b683E(i8** %_1) unnamed_addr #0 !dbg !360 {
start:
%_1.dbg.spill = alloca i8**, align 8
store i8** %_1, i8*** %_1.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i8*** %_1.dbg.spill, metadata !366, metadata !DIExpression()), !dbg !369
ret void, !dbg !369
}
; core::ptr::swap_nonoverlapping
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @_ZN4core3ptr19swap_nonoverlapping17h858d11028c044449E(i32* %x, i32* %y, i64 %count) unnamed_addr #1 !dbg !370 {
start:
%0 = alloca i64, align 8
%len.dbg.spill = alloca i64, align 8
%y.dbg.spill4 = alloca i8*, align 8
%x.dbg.spill2 = alloca i8*, align 8
%count.dbg.spill = alloca i64, align 8
%y.dbg.spill = alloca i32*, align 8
%x.dbg.spill = alloca i32*, align 8
store i32* %x, i32** %x.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %x.dbg.spill, metadata !374, metadata !DIExpression()), !dbg !383
store i32* %y, i32** %y.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %y.dbg.spill, metadata !375, metadata !DIExpression()), !dbg !384
store i64 %count, i64* %count.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i64* %count.dbg.spill, metadata !376, metadata !DIExpression()), !dbg !385
%x1 = bitcast i32* %x to i8*, !dbg !386
store i8* %x1, i8** %x.dbg.spill2, align 8, !dbg !386
call void @llvm.dbg.declare(metadata i8** %x.dbg.spill2, metadata !377, metadata !DIExpression()), !dbg !387
%y3 = bitcast i32* %y to i8*, !dbg !388
store i8* %y3, i8** %y.dbg.spill4, align 8, !dbg !388
call void @llvm.dbg.declare(metadata i8** %y.dbg.spill4, metadata !379, metadata !DIExpression()), !dbg !389
store i64 4, i64* %0, align 8, !dbg !390
%1 = load i64, i64* %0, align 8, !dbg !390
br label %bb1, !dbg !395
bb1: ; preds = %start
%len = mul i64 %1, %count, !dbg !395
store i64 %len, i64* %len.dbg.spill, align 8, !dbg !395
call void @llvm.dbg.declare(metadata i64* %len.dbg.spill, metadata !381, metadata !DIExpression()), !dbg !396
; call core::ptr::swap_nonoverlapping_bytes
call void @_ZN4core3ptr25swap_nonoverlapping_bytes17h9e7c5d042bbac38fE(i8* %x1, i8* %y3, i64 %len), !dbg !397
br label %bb2, !dbg !397
bb2: ; preds = %bb1
ret void, !dbg !398
}
; core::ptr::swap_nonoverlapping_one
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @_ZN4core3ptr23swap_nonoverlapping_one17he6fda9b6a548efdfE(i32* %x, i32* %y) unnamed_addr #1 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality !dbg !399 {
start:
%0 = alloca i64, align 8
%1 = alloca { i8*, i32 }, align 8
%z.dbg.spill = alloca i32, align 4
%y.dbg.spill = alloca i32*, align 8
%x.dbg.spill = alloca i32*, align 8
%_18 = alloca i8, align 1
store i32* %x, i32** %x.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %x.dbg.spill, metadata !403, metadata !DIExpression()), !dbg !407
store i32* %y, i32** %y.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %y.dbg.spill, metadata !404, metadata !DIExpression()), !dbg !408
store i8 0, i8* %_18, align 1, !dbg !409
store i64 4, i64* %0, align 8, !dbg !410
%2 = load i64, i64* %0, align 8, !dbg !410
br label %bb2, !dbg !409
bb1: ; preds = %bb10, %bb11
%3 = bitcast { i8*, i32 }* %1 to i8**, !dbg !412
%4 = load i8*, i8** %3, align 8, !dbg !412
%5 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %1, i32 0, i32 1, !dbg !412
%6 = load i32, i32* %5, align 8, !dbg !412
%7 = insertvalue { i8*, i32 } undef, i8* %4, 0, !dbg !412
%8 = insertvalue { i8*, i32 } %7, i32 %6, 1, !dbg !412
resume { i8*, i32 } %8, !dbg !412
bb2: ; preds = %start
%_3 = icmp ult i64 %2, 32, !dbg !409
br i1 %_3, label %bb4, label %bb3, !dbg !413
bb3: ; preds = %bb2
; call core::ptr::swap_nonoverlapping
call void @_ZN4core3ptr19swap_nonoverlapping17h858d11028c044449E(i32* %x, i32* %y, i64 1), !dbg !414
br label %bb8, !dbg !414
bb4: ; preds = %bb2
store i8 1, i8* %_18, align 1, !dbg !415
; call core::ptr::read
%z = call i32 @_ZN4core3ptr4read17hb8b617b170f7f5dcE(i32* %x), !dbg !415
store i32 %z, i32* %z.dbg.spill, align 4, !dbg !415
call void @llvm.dbg.declare(metadata i32* %z.dbg.spill, metadata !405, metadata !DIExpression()), !dbg !416
br label %bb5, !dbg !415
bb5: ; preds = %bb4
; invoke core::intrinsics::copy_nonoverlapping
invoke void @_ZN4core10intrinsics19copy_nonoverlapping17hc0c4590bff1ea0f7E(i32* %y, i32* %x, i64 1)
to label %bb6 unwind label %cleanup, !dbg !417
bb6: ; preds = %bb5
store i8 0, i8* %_18, align 1, !dbg !418
; invoke core::ptr::write
invoke void @_ZN4core3ptr5write17hfd67ddf85252221fE(i32* %y, i32 %z)
to label %bb7 unwind label %cleanup, !dbg !419
bb7: ; preds = %bb6
store i8 0, i8* %_18, align 1, !dbg !420
br label %bb9, !dbg !413
bb8: ; preds = %bb3
br label %bb9, !dbg !413
bb9: ; preds = %bb8, %bb7
ret void, !dbg !421
bb10: ; preds = %bb11
store i8 0, i8* %_18, align 1, !dbg !420
br label %bb1, !dbg !420
bb11: ; preds = %cleanup
%9 = load i8, i8* %_18, align 1, !dbg !420, !range !422
%10 = trunc i8 %9 to i1, !dbg !420
br i1 %10, label %bb10, label %bb1, !dbg !420
cleanup: ; preds = %bb6, %bb5
%11 = landingpad { i8*, i32 }
cleanup
%12 = extractvalue { i8*, i32 } %11, 0
%13 = extractvalue { i8*, i32 } %11, 1
%14 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %1, i32 0, i32 0
store i8* %12, i8** %14, align 8
%15 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %1, i32 0, i32 1
store i32 %13, i32* %15, align 8
br label %bb11
}
; core::ptr::swap_nonoverlapping_bytes
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @_ZN4core3ptr25swap_nonoverlapping_bytes17h9e7c5d042bbac38fE(i8* %x, i8* %y, i64 %len) unnamed_addr #1 !dbg !423 {
start:
%self.dbg.spill.i.i13 = alloca %"core::mem::manually_drop::ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"*, align 8
call void @llvm.dbg.declare(metadata %"core::mem::manually_drop::ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"** %self.dbg.spill.i.i13, metadata !485, metadata !DIExpression()), !dbg !494
%self.dbg.spill.i14 = alloca %"core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"*, align 8
call void @llvm.dbg.declare(metadata %"core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"** %self.dbg.spill.i14, metadata !503, metadata !DIExpression()), !dbg !505
%self.dbg.spill.i.i = alloca <4 x i64>*, align 8
call void @llvm.dbg.declare(metadata <4 x i64>** %self.dbg.spill.i.i, metadata !506, metadata !DIExpression()), !dbg !513
%self.dbg.spill.i = alloca <4 x i64>*, align 8
call void @llvm.dbg.declare(metadata <4 x i64>** %self.dbg.spill.i, metadata !521, metadata !DIExpression()), !dbg !523
%0 = alloca i64, align 8
%y.dbg.spill12 = alloca i8*, align 8
%x.dbg.spill10 = alloca i8*, align 8
%t.dbg.spill8 = alloca i8*, align 8
%rem.dbg.spill = alloca i64, align 8
%y.dbg.spill6 = alloca i8*, align 8
%x.dbg.spill4 = alloca i8*, align 8
%t.dbg.spill = alloca i8*, align 8
%block_size.dbg.spill = alloca i64, align 8
%len.dbg.spill = alloca i64, align 8
%y.dbg.spill = alloca i8*, align 8
%x.dbg.spill = alloca i8*, align 8
%t1 = alloca %"core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>", align 8
%t = alloca <4 x i64>, align 32
%i = alloca i64, align 8
store i8* %x, i8** %x.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i8** %x.dbg.spill, metadata !427, metadata !DIExpression()), !dbg !524
store i8* %y, i8** %y.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i8** %y.dbg.spill, metadata !428, metadata !DIExpression()), !dbg !525
store i64 %len, i64* %len.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i64* %len.dbg.spill, metadata !429, metadata !DIExpression()), !dbg !526
call void @llvm.dbg.declare(metadata i64* %i, metadata !432, metadata !DIExpression()), !dbg !527
call void @llvm.dbg.declare(metadata <4 x i64>* %t, metadata !434, metadata !DIExpression()), !dbg !528
call void @llvm.dbg.declare(metadata %"core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"* %t1, metadata !460, metadata !DIExpression()), !dbg !529
store i64 32, i64* %0, align 8, !dbg !530
%1 = load i64, i64* %0, align 8, !dbg !530
store i64 %1, i64* %block_size.dbg.spill, align 8, !dbg !533
call void @llvm.dbg.declare(metadata i64* %block_size.dbg.spill, metadata !430, metadata !DIExpression()), !dbg !534
br label %bb1, !dbg !533
bb1: ; preds = %start
store i64 0, i64* %i, align 8, !dbg !535
br label %bb2, !dbg !536
bb2: ; preds = %bb11, %bb1
%_8 = load i64, i64* %i, align 8, !dbg !537
%_7 = add i64 %_8, %1, !dbg !537
%_6 = icmp ule i64 %_7, %len, !dbg !537
br i1 %_6, label %bb4, label %bb3, !dbg !536
bb3: ; preds = %bb2
%_38 = load i64, i64* %i, align 8, !dbg !538
%_37 = icmp ult i64 %_38, %len, !dbg !538
br i1 %_37, label %bb12, label %bb20, !dbg !539
bb4: ; preds = %bb2
%2 = bitcast <4 x i64>* %t to {}*, !dbg !540
br label %bb5, !dbg !545
bb5: ; preds = %bb4
store <4 x i64>* %t, <4 x i64>** %self.dbg.spill.i, align 8
store <4 x i64>* %t, <4 x i64>** %self.dbg.spill.i.i, align 8
br label %bb6, !dbg !546
bb6: ; preds = %bb5
%t2 = bitcast <4 x i64>* %t to i8*, !dbg !546
store i8* %t2, i8** %t.dbg.spill, align 8, !dbg !546
call void @llvm.dbg.declare(metadata i8** %t.dbg.spill, metadata !454, metadata !DIExpression()), !dbg !547
%_17 = load i64, i64* %i, align 8, !dbg !548
; call core::ptr::mut_ptr::<impl *mut T>::add
%x3 = call i8* @"_ZN4core3ptr7mut_ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$3add17h5dbe540d304e464eE"(i8* %x, i64 %_17), !dbg !549
store i8* %x3, i8** %x.dbg.spill4, align 8, !dbg !549
call void @llvm.dbg.declare(metadata i8** %x.dbg.spill4, metadata !456, metadata !DIExpression()), !dbg !550
br label %bb7, !dbg !549
bb7: ; preds = %bb6
%_20 = load i64, i64* %i, align 8, !dbg !551
; call core::ptr::mut_ptr::<impl *mut T>::add
%y5 = call i8* @"_ZN4core3ptr7mut_ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$3add17h5dbe540d304e464eE"(i8* %y, i64 %_20), !dbg !552
store i8* %y5, i8** %y.dbg.spill6, align 8, !dbg !552
call void @llvm.dbg.declare(metadata i8** %y.dbg.spill6, metadata !458, metadata !DIExpression()), !dbg !553
br label %bb8, !dbg !552
bb8: ; preds = %bb7
; call core::intrinsics::copy_nonoverlapping
call void @_ZN4core10intrinsics19copy_nonoverlapping17hf8deb65fbe0d5b49E(i8* %x3, i8* %t2, i64 %1), !dbg !554
br label %bb9, !dbg !554
bb9: ; preds = %bb8
; call core::intrinsics::copy_nonoverlapping
call void @_ZN4core10intrinsics19copy_nonoverlapping17hf8deb65fbe0d5b49E(i8* %y5, i8* %x3, i64 %1), !dbg !555
br label %bb10, !dbg !555
bb10: ; preds = %bb9
; call core::intrinsics::copy_nonoverlapping
call void @_ZN4core10intrinsics19copy_nonoverlapping17hf8deb65fbe0d5b49E(i8* %t2, i8* %y5, i64 %1), !dbg !556
br label %bb11, !dbg !556
bb11: ; preds = %bb10
%3 = load i64, i64* %i, align 8, !dbg !557
%4 = add i64 %3, %1, !dbg !557
store i64 %4, i64* %i, align 8, !dbg !557
br label %bb2, !dbg !536
bb12: ; preds = %bb3
%5 = bitcast %"core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"* %t1 to {}*, !dbg !558
br label %bb13, !dbg !563
bb13: ; preds = %bb12
%_43 = load i64, i64* %i, align 8, !dbg !564
%rem = sub i64 %len, %_43, !dbg !565
store i64 %rem, i64* %rem.dbg.spill, align 8, !dbg !565
call void @llvm.dbg.declare(metadata i64* %rem.dbg.spill, metadata !477, metadata !DIExpression()), !dbg !566
store %"core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"* %t1, %"core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"** %self.dbg.spill.i14, align 8
%_4.i = bitcast %"core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"* %t1 to %"core::mem::manually_drop::ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"*, !dbg !567
store %"core::mem::manually_drop::ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"* %_4.i, %"core::mem::manually_drop::ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"** %self.dbg.spill.i.i13, align 8
%_3.i.i = bitcast %"core::mem::manually_drop::ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>"* %_4.i to %"core::ptr::swap_nonoverlapping_bytes::UnalignedBlock"*, !dbg !568
br label %bb14, !dbg !569
bb14: ; preds = %bb13
%t7 = bitcast %"core::ptr::swap_nonoverlapping_bytes::UnalignedBlock"* %_3.i.i to i8*, !dbg !569
store i8* %t7, i8** %t.dbg.spill8, align 8, !dbg !569
call void @llvm.dbg.declare(metadata i8** %t.dbg.spill8, metadata !479, metadata !DIExpression()), !dbg !570
%_49 = load i64, i64* %i, align 8, !dbg !571
; call core::ptr::mut_ptr::<impl *mut T>::add
%x9 = call i8* @"_ZN4core3ptr7mut_ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$3add17h5dbe540d304e464eE"(i8* %x, i64 %_49), !dbg !572
store i8* %x9, i8** %x.dbg.spill10, align 8, !dbg !572
call void @llvm.dbg.declare(metadata i8** %x.dbg.spill10, metadata !481, metadata !DIExpression()), !dbg !573
br label %bb15, !dbg !572
bb15: ; preds = %bb14
%_52 = load i64, i64* %i, align 8, !dbg !574
; call core::ptr::mut_ptr::<impl *mut T>::add
%y11 = call i8* @"_ZN4core3ptr7mut_ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$3add17h5dbe540d304e464eE"(i8* %y, i64 %_52), !dbg !575
store i8* %y11, i8** %y.dbg.spill12, align 8, !dbg !575
call void @llvm.dbg.declare(metadata i8** %y.dbg.spill12, metadata !483, metadata !DIExpression()), !dbg !576
br label %bb16, !dbg !575
bb16: ; preds = %bb15
; call core::intrinsics::copy_nonoverlapping
call void @_ZN4core10intrinsics19copy_nonoverlapping17hf8deb65fbe0d5b49E(i8* %x9, i8* %t7, i64 %rem), !dbg !577
br label %bb17, !dbg !577
bb17: ; preds = %bb16
; call core::intrinsics::copy_nonoverlapping
call void @_ZN4core10intrinsics19copy_nonoverlapping17hf8deb65fbe0d5b49E(i8* %y11, i8* %x9, i64 %rem), !dbg !578
br label %bb18, !dbg !578
bb18: ; preds = %bb17
; call core::intrinsics::copy_nonoverlapping
call void @_ZN4core10intrinsics19copy_nonoverlapping17hf8deb65fbe0d5b49E(i8* %t7, i8* %y11, i64 %rem), !dbg !579
br label %bb19, !dbg !579
bb19: ; preds = %bb18
br label %bb20, !dbg !539
bb20: ; preds = %bb19, %bb3
ret void, !dbg !580
}
; core::ptr::read
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32 @_ZN4core3ptr4read17hb8b617b170f7f5dcE(i32* %src) unnamed_addr #1 !dbg !581 {
start:
%self.dbg.spill.i.i = alloca i32*, align 8
call void @llvm.dbg.declare(metadata i32** %self.dbg.spill.i.i, metadata !595, metadata !DIExpression()), !dbg !601
%self.dbg.spill.i1 = alloca i32*, align 8
call void @llvm.dbg.declare(metadata i32** %self.dbg.spill.i1, metadata !608, metadata !DIExpression()), !dbg !610
%slot.dbg.spill.i.i = alloca i32, align 4
call void @llvm.dbg.declare(metadata i32* %slot.dbg.spill.i.i, metadata !611, metadata !DIExpression()), !dbg !616
%self.dbg.spill.i = alloca i32, align 4
call void @llvm.dbg.declare(metadata i32* %self.dbg.spill.i, metadata !622, metadata !DIExpression()), !dbg !624
%0 = alloca i32, align 4
%src.dbg.spill = alloca i32*, align 8
%tmp = alloca i32, align 4
store i32* %src, i32** %src.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %src.dbg.spill, metadata !585, metadata !DIExpression()), !dbg !625
call void @llvm.dbg.declare(metadata i32* %tmp, metadata !586, metadata !DIExpression()), !dbg !626
%1 = bitcast i32* %0 to {}*, !dbg !627
%2 = load i32, i32* %0, align 4, !dbg !632
store i32 %2, i32* %tmp, align 4, !dbg !633
br label %bb1, !dbg !633
bb1: ; preds = %start
store i32* %tmp, i32** %self.dbg.spill.i1, align 8
store i32* %tmp, i32** %self.dbg.spill.i.i, align 8
br label %bb2, !dbg !634
bb2: ; preds = %bb1
; call core::intrinsics::copy_nonoverlapping
call void @_ZN4core10intrinsics19copy_nonoverlapping17hc0c4590bff1ea0f7E(i32* %src, i32* %tmp, i64 1), !dbg !635
br label %bb3, !dbg !635
bb3: ; preds = %bb2
%_7 = load i32, i32* %tmp, align 4, !dbg !636
store i32 %_7, i32* %self.dbg.spill.i, align 4
store i32 %_7, i32* %slot.dbg.spill.i.i, align 4
br label %bb4, !dbg !636
bb4: ; preds = %bb3
ret i32 %_7, !dbg !637
}
; core::ptr::write
; Function Attrs: inlinehint nonlazybind uwtable
define internal void @_ZN4core3ptr5write17hfd67ddf85252221fE(i32* %dst, i32 %src) unnamed_addr #1 !dbg !638 {
start:
%src.dbg.spill = alloca i32, align 4
%dst.dbg.spill = alloca i32*, align 8
store i32* %dst, i32** %dst.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i32** %dst.dbg.spill, metadata !642, metadata !DIExpression()), !dbg !644
store i32 %src, i32* %src.dbg.spill, align 4
call void @llvm.dbg.declare(metadata i32* %src.dbg.spill, metadata !643, metadata !DIExpression()), !dbg !645
store i32 %src, i32* %dst, align 4, !dbg !646
ret void, !dbg !647
}
; core::ptr::mut_ptr::<impl *mut T>::add
; Function Attrs: inlinehint nonlazybind uwtable
define internal i8* @"_ZN4core3ptr7mut_ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$3add17h5dbe540d304e464eE"(i8* %self, i64 %count) unnamed_addr #1 !dbg !648 {
start:
%count.dbg.spill = alloca i64, align 8
%self.dbg.spill = alloca i8*, align 8
store i8* %self, i8** %self.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i8** %self.dbg.spill, metadata !655, metadata !DIExpression()), !dbg !657
store i64 %count, i64* %count.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i64* %count.dbg.spill, metadata !656, metadata !DIExpression()), !dbg !658
; call core::ptr::mut_ptr::<impl *mut T>::offset
%0 = call i8* @"_ZN4core3ptr7mut_ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$6offset17h850232ccdf5f4362E"(i8* %self, i64 %count), !dbg !659
br label %bb1, !dbg !659
bb1: ; preds = %start
ret i8* %0, !dbg !660
}
; core::ptr::mut_ptr::<impl *mut T>::offset
; Function Attrs: inlinehint nonlazybind uwtable
define internal i8* @"_ZN4core3ptr7mut_ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$6offset17h850232ccdf5f4362E"(i8* %self, i64 %count) unnamed_addr #1 !dbg !661 {
start:
%0 = alloca i8*, align 8
%count.dbg.spill = alloca i64, align 8
%self.dbg.spill = alloca i8*, align 8
store i8* %self, i8** %self.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i8** %self.dbg.spill, metadata !665, metadata !DIExpression()), !dbg !667
store i64 %count, i64* %count.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i64* %count.dbg.spill, metadata !666, metadata !DIExpression()), !dbg !668
%1 = getelementptr inbounds i8, i8* %self, i64 %count, !dbg !669
store i8* %1, i8** %0, align 8, !dbg !669
%_3 = load i8*, i8** %0, align 8, !dbg !669
br label %bb1, !dbg !669
bb1: ; preds = %start
ret i8* %_3, !dbg !670
}
; core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::Range<A>>::next
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i32, i32 } @"_ZN4core4iter5range101_$LT$impl$u20$core..iter..traits..iterator..Iterator$u20$for$u20$core..ops..range..Range$LT$A$GT$$GT$4next17h2525abc134e599f1E"({ i32, i32 }* align 4 dereferenceable(8) %self) unnamed_addr #1 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality !dbg !671 {
start:
%0 = alloca { i8*, i32 }, align 8
%self.dbg.spill = alloca { i32, i32 }*, align 8
%_15 = alloca i8, align 1
%n = alloca i32, align 4
%_5 = alloca { i32, i32 }, align 4
%1 = alloca { i32, i32 }, align 4
store { i32, i32 }* %self, { i32, i32 }** %self.dbg.spill, align 8
call void @llvm.dbg.declare(metadata { i32, i32 }** %self.dbg.spill, metadata !683, metadata !DIExpression()), !dbg !688
call void @llvm.dbg.declare(metadata i32* %n, metadata !684, metadata !DIExpression()), !dbg !689
store i8 0, i8* %_15, align 1, !dbg !690
%_3 = bitcast { i32, i32 }* %self to i32*, !dbg !690
%_4 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %self, i32 0, i32 1, !dbg !691
; call core::cmp::impls::<impl core::cmp::PartialOrd for i32>::lt
%_2 = call zeroext i1 @"_ZN4core3cmp5impls55_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$i32$GT$2lt17h6242e978760dcbacE"(i32* noalias readonly align 4 dereferenceable(4) %_3, i32* noalias readonly align 4 dereferenceable(4) %_4), !dbg !690
br label %bb1, !dbg !690
bb1: ; preds = %start
br i1 %_2, label %bb3, label %bb2, !dbg !692
bb2: ; preds = %bb1
%2 = bitcast { i32, i32 }* %1 to i32*, !dbg !693
store i32 0, i32* %2, align 4, !dbg !693
br label %bb10, !dbg !692
bb3: ; preds = %bb1
%_6 = bitcast { i32, i32 }* %self to i32*, !dbg !694
store i8 1, i8* %_15, align 1, !dbg !694
; call <i32 as core::iter::range::Step>::add_usize
%3 = call { i32, i32 } @"_ZN47_$LT$i32$u20$as$u20$core..iter..range..Step$GT$9add_usize17h58f32b59aa6ed552E"(i32* noalias readonly align 4 dereferenceable(4) %_6, i64 1), !dbg !694
store { i32, i32 } %3, { i32, i32 }* %_5, align 4, !dbg !694
br label %bb4, !dbg !694
bb4: ; preds = %bb3
%4 = bitcast { i32, i32 }* %_5 to i32*, !dbg !695
%5 = load i32, i32* %4, align 4, !dbg !695, !range !121
%_7 = zext i32 %5 to i64, !dbg !695
%6 = icmp eq i64 %_7, 1, !dbg !695
br i1 %6, label %bb6, label %bb5, !dbg !695
bb5: ; preds = %bb4
%7 = bitcast { i32, i32 }* %1 to i32*, !dbg !696
store i32 0, i32* %7, align 4, !dbg !696
br label %bb14, !dbg !697
bb6: ; preds = %bb4
store i8 0, i8* %_15, align 1, !dbg !698
%8 = bitcast { i32, i32 }* %_5 to %"core::option::Option<i32>::Some"*, !dbg !698
%9 = getelementptr inbounds %"core::option::Option<i32>::Some", %"core::option::Option<i32>::Some"* %8, i32 0, i32 1, !dbg !698
%10 = load i32, i32* %9, align 4, !dbg !698
store i32 %10, i32* %n, align 4, !dbg !698
%_13 = bitcast { i32, i32 }* %self to i32*, !dbg !699
; invoke core::mem::swap
invoke void @_ZN4core3mem4swap17he16b24ad0b897db6E(i32* align 4 dereferenceable(4) %n, i32* align 4 dereferenceable(4) %_13)
to label %bb7 unwind label %cleanup, !dbg !700
bb7: ; preds = %bb6
%_14 = load i32, i32* %n, align 4, !dbg !701
%11 = bitcast { i32, i32 }* %1 to %"core::option::Option<i32>::Some"*, !dbg !702
%12 = getelementptr inbounds %"core::option::Option<i32>::Some", %"core::option::Option<i32>::Some"* %11, i32 0, i32 1, !dbg !702
store i32 %_14, i32* %12, align 4, !dbg !702
%13 = bitcast { i32, i32 }* %1 to i32*, !dbg !702
store i32 1, i32* %13, align 4, !dbg !702
br label %bb14, !dbg !703
bb8: ; preds = %bb9
%14 = bitcast { i32, i32 }* %_5 to i32*, !dbg !703
%15 = load i32, i32* %14, align 4, !dbg !703, !range !121
%_16 = zext i32 %15 to i64, !dbg !703
%16 = bitcast { i8*, i32 }* %0 to i8**, !dbg !704
%17 = load i8*, i8** %16, align 8, !dbg !704
%18 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %0, i32 0, i32 1, !dbg !704
%19 = load i32, i32* %18, align 8, !dbg !704
%20 = insertvalue { i8*, i32 } undef, i8* %17, 0, !dbg !704
%21 = insertvalue { i8*, i32 } %20, i32 %19, 1, !dbg !704
resume { i8*, i32 } %21, !dbg !704
bb9: ; preds = %cleanup
br label %bb8, !dbg !705
bb10: ; preds = %bb2, %bb11
%22 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %1, i32 0, i32 0, !dbg !706
%23 = load i32, i32* %22, align 4, !dbg !706, !range !121
%24 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %1, i32 0, i32 1, !dbg !706
%25 = load i32, i32* %24, align 4, !dbg !706
%26 = insertvalue { i32, i32 } undef, i32 %23, 0, !dbg !706
%27 = insertvalue { i32, i32 } %26, i32 %25, 1, !dbg !706
ret { i32, i32 } %27, !dbg !706
bb11: ; preds = %bb13, %bb12, %bb14
store i8 0, i8* %_15, align 1, !dbg !703
br label %bb10, !dbg !692
bb12: ; preds = %bb14
%28 = load i8, i8* %_15, align 1, !dbg !703, !range !422
%29 = trunc i8 %28 to i1, !dbg !703
br i1 %29, label %bb13, label %bb11, !dbg !703
bb13: ; preds = %bb12
store i8 0, i8* %_15, align 1, !dbg !703
br label %bb11, !dbg !703
bb14: ; preds = %bb7, %bb5
%30 = bitcast { i32, i32 }* %_5 to i32*, !dbg !703
%31 = load i32, i32* %30, align 4, !dbg !703, !range !121
%_17 = zext i32 %31 to i64, !dbg !703
%32 = icmp eq i64 %_17, 1, !dbg !703
br i1 %32, label %bb12, label %bb11, !dbg !703
cleanup: ; preds = %bb6
%33 = landingpad { i8*, i32 }
cleanup
%34 = extractvalue { i8*, i32 } %33, 0
%35 = extractvalue { i8*, i32 } %33, 1
%36 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %0, i32 0, i32 0
store i8* %34, i8** %36, align 8
%37 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %0, i32 0, i32 1
store i32 %35, i32* %37, align 8
br label %bb9
}
; core::convert::num::ptr_try_from_impls::<impl core::convert::TryFrom<usize> for u32>::try_from
; Function Attrs: inlinehint nonlazybind uwtable
define internal { i32, i32 } @"_ZN4core7convert3num18ptr_try_from_impls69_$LT$impl$u20$core..convert..TryFrom$LT$usize$GT$$u20$for$u20$u32$GT$8try_from17h54cce386fc926767E"(i64 %u) unnamed_addr #1 !dbg !707 {
start:
%u.dbg.spill = alloca i64, align 8
%0 = alloca { i32, i32 }, align 4
store i64 %u, i64* %u.dbg.spill, align 8
call void @llvm.dbg.declare(metadata i64* %u.dbg.spill, metadata !735, metadata !DIExpression()), !dbg !736
br label %bb1, !dbg !737
bb1: ; preds = %start
%_4 = zext i32 -1 to i64, !dbg !738
%_2 = icmp ugt i64 %u, %_4, !dbg !739
br i1 %_2, label %bb3, label %bb2, !dbg !740
bb2: ; preds = %bb1
%_7 = trunc i64 %u to i32, !dbg !741
%1 = bitcast { i32, i32 }* %0 to %"core::result::Result<u32, core::num::TryFromIntError>::Ok"*, !dbg !742
%2 = getelementptr inbounds %"core::result::Result<u32, core::num::TryFromIntError>::Ok", %"core::result::Result<u32, core::num::TryFromIntError>::Ok"* %1, i32 0, i32 1, !dbg !742
store i32 %_7, i32* %2, align 4, !dbg !742
%3 = bitcast { i32, i32 }* %0 to i32*, !dbg !742
store i32 0, i32* %3, align 4, !dbg !742
br label %bb4, !dbg !740
bb3: ; preds = %bb1
%4 = bitcast { i32, i32 }* %0 to %"core::result::Result<u32, core::num::TryFromIntError>::Err"*, !dbg !743
%5 = getelementptr inbounds %"core::result::Result<u32, core::num::TryFromIntError>::Err", %"core::result::Result<u32, core::num::TryFromIntError>::Err"* %4, i32 0, i32 1, !dbg !743
%6 = bitcast { i32, i32 }* %0 to i32*, !dbg !743
store i32 1, i32* %6, align 4, !dbg !743
br label %bb4, !dbg !740
bb4: ; preds = %bb2, %bb3
%7 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %0, i32 0, i32 0, !dbg !744
%8 = load i32, i32* %7, align 4, !dbg !744, !range !121
%9 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %0, i32 0, i32 1, !dbg !744
%10 = load i32, i32* %9, align 4, !dbg !744
%11 = insertvalue { i32, i32 } undef, i32 %8, 0, !dbg !744
%12 = insertvalue { i32, i32 } %11, i32 %10, 1, !dbg !744
ret { i32, i32 } %12, !dbg !744
}
; <() as std::process::Termination>::report
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32 @"_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17hb299261025355cbfE"() unnamed_addr #1 !dbg !745 {
start:
%self.dbg.spill = alloca {}, align 1
call void @llvm.dbg.declare(metadata {}* %self.dbg.spill, metadata !752, metadata !DIExpression()), !dbg !753
; call <std::process::ExitCode as std::process::Termination>::report
%0 = call i32 @"_ZN68_$LT$std..process..ExitCode$u20$as$u20$std..process..Termination$GT$6report17he7157c58223cf1afE"(i8 0), !dbg !754
br label %bb1, !dbg !754
bb1: ; preds = %start
ret i32 %0, !dbg !755
}
; <I as core::iter::traits::collect::IntoIterator>::into_iter
; Function Attrs: nonlazybind uwtable
define internal { i32, i32 } @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h7c746f09ad0c25f9E"(i32 %self.0, i32 %self.1) unnamed_addr #0 !dbg !756 {
start:
%self.dbg.spill = alloca { i32, i32 }, align 4
%0 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %self.dbg.spill, i32 0, i32 0
store i32 %self.0, i32* %0, align 4
%1 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %self.dbg.spill, i32 0, i32 1
store i32 %self.1, i32* %1, align 4
call void @llvm.dbg.declare(metadata { i32, i32 }* %self.dbg.spill, metadata !764, metadata !DIExpression()), !dbg !767
%2 = insertvalue { i32, i32 } undef, i32 %self.0, 0, !dbg !768
%3 = insertvalue { i32, i32 } %2, i32 %self.1, 1, !dbg !768
ret { i32, i32 } %3, !dbg !768
}
; <std::process::ExitCode as std::process::Termination>::report
; Function Attrs: inlinehint nonlazybind uwtable
define internal i32 @"_ZN68_$LT$std..process..ExitCode$u20$as$u20$std..process..Termination$GT$6report17he7157c58223cf1afE"(i8) unnamed_addr #1 !dbg !769 {
start:
%self = alloca i8, align 1
store i8 %0, i8* %self, align 1
call void @llvm.dbg.declare(metadata i8* %self, metadata !776, metadata !DIExpression()), !dbg !777
; call std::sys::unix::process::process_common::ExitCode::as_i32
%1 = call i32 @_ZN3std3sys4unix7process14process_common8ExitCode6as_i3217h7ec8f604402542d5E(i8* noalias readonly align 1 dereferenceable(1) %self), !dbg !778
br label %bb1, !dbg !778
bb1: ; preds = %start
ret i32 %1, !dbg !779
}
; playground::main
; Function Attrs: nonlazybind uwtable
define internal void @_ZN10playground4main17h4a4fe2905f844b5dE() unnamed_addr #0 !dbg !780 {
start:
%arg0.dbg.spill = alloca i32*, align 8
%__next.dbg.spill = alloca i32, align 4
%val.dbg.spill = alloca i32, align 4
%_21 = alloca i32*, align 8
%_20 = alloca [1 x { i8*, i8* }], align 8
%_13 = alloca %"core::fmt::Arguments", align 8
%i = alloca i32, align 4
%_5 = alloca { i32, i32 }, align 4
%iter = alloca { i32, i32 }, align 4
%_2 = alloca { i32, i32 }, align 4
call void @llvm.dbg.declare(metadata { i32, i32 }* %iter, metadata !783, metadata !DIExpression()), !dbg !795
call void @llvm.dbg.declare(metadata i32* %i, metadata !789, metadata !DIExpression()), !dbg !796
%0 = bitcast { i32, i32 }* %_2 to i32*, !dbg !797
store i32 0, i32* %0, align 4, !dbg !797
%1 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %_2, i32 0, i32 1, !dbg !797
store i32 10, i32* %1, align 4, !dbg !797
%2 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %_2, i32 0, i32 0, !dbg !797
%3 = load i32, i32* %2, align 4, !dbg !797
%4 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %_2, i32 0, i32 1, !dbg !797
%5 = load i32, i32* %4, align 4, !dbg !797
; call <I as core::iter::traits::collect::IntoIterator>::into_iter
%6 = call { i32, i32 } @"_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h7c746f09ad0c25f9E"(i32 %3, i32 %5), !dbg !797
%_1.0 = extractvalue { i32, i32 } %6, 0, !dbg !797
%_1.1 = extractvalue { i32, i32 } %6, 1, !dbg !797
br label %bb1, !dbg !797
bb1: ; preds = %start
%7 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %iter, i32 0, i32 0, !dbg !797
store i32 %_1.0, i32* %7, align 4, !dbg !797
%8 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %iter, i32 0, i32 1, !dbg !797
store i32 %_1.1, i32* %8, align 4, !dbg !797
br label %bb2, !dbg !798
bb2: ; preds = %bb9, %bb1
; call core::iter::range::<impl core::iter::traits::iterator::Iterator for core::ops::range::Range<A>>::next
%9 = call { i32, i32 } @"_ZN4core4iter5range101_$LT$impl$u20$core..iter..traits..iterator..Iterator$u20$for$u20$core..ops..range..Range$LT$A$GT$$GT$4next17h2525abc134e599f1E"({ i32, i32 }* align 4 dereferenceable(8) %iter), !dbg !799
store { i32, i32 } %9, { i32, i32 }* %_5, align 4, !dbg !799
br label %bb3, !dbg !799
bb3: ; preds = %bb2
%10 = bitcast { i32, i32 }* %_5 to i32*, !dbg !800
%11 = load i32, i32* %10, align 4, !dbg !800, !range !121
%_8 = zext i32 %11 to i64, !dbg !800
switch i64 %_8, label %bb5 [
i64 0, label %bb4
i64 1, label %bb6
], !dbg !800
bb4: ; preds = %bb3
ret void, !dbg !801
bb5: ; preds = %bb3
unreachable, !dbg !799
bb6: ; preds = %bb3
%12 = bitcast { i32, i32 }* %_5 to %"core::option::Option<i32>::Some"*, !dbg !800
%13 = getelementptr inbounds %"core::option::Option<i32>::Some", %"core::option::Option<i32>::Some"* %12, i32 0, i32 1, !dbg !800
%val = load i32, i32* %13, align 4, !dbg !800
store i32 %val, i32* %val.dbg.spill, align 4, !dbg !800
call void @llvm.dbg.declare(metadata i32* %val.dbg.spill, metadata !787, metadata !DIExpression()), !dbg !803
store i32 %val, i32* %__next.dbg.spill, align 4, !dbg !803
call void @llvm.dbg.declare(metadata i32* %__next.dbg.spill, metadata !785, metadata !DIExpression()), !dbg !799
store i32 %val, i32* %i, align 4, !dbg !799
%_27 = load [2 x { [0 x i8]*, i64 }]*, [2 x { [0 x i8]*, i64 }]** bitcast (<{ i8*, [0 x i8] }>* @3 to [2 x { [0 x i8]*, i64 }]**), align 8, !dbg !804, !nonnull !4
%_14.0 = bitcast [2 x { [0 x i8]*, i64 }]* %_27 to [0 x { [0 x i8]*, i64 }]*, !dbg !804
store i32* %i, i32** %_21, align 8, !dbg !805
%arg0 = load i32*, i32** %_21, align 8, !dbg !805, !nonnull !4
store i32* %arg0, i32** %arg0.dbg.spill, align 8, !dbg !805
call void @llvm.dbg.declare(metadata i32** %arg0.dbg.spill, metadata !791, metadata !DIExpression()), !dbg !806
; call core::fmt::ArgumentV1::new
%14 = call { i8*, i8* } @_ZN4core3fmt10ArgumentV13new17h51e098059b2fc3dcE(i32* noalias readonly align 4 dereferenceable(4) %arg0, i1 (i32*, %"core::fmt::Formatter"*)* nonnull @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17h8db0496dec18ff9aE"), !dbg !806
%_24.0 = extractvalue { i8*, i8* } %14, 0, !dbg !806
%_24.1 = extractvalue { i8*, i8* } %14, 1, !dbg !806
br label %bb7, !dbg !806
bb7: ; preds = %bb6
%15 = bitcast [1 x { i8*, i8* }]* %_20 to { i8*, i8* }*, !dbg !806
%16 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %15, i32 0, i32 0, !dbg !806
store i8* %_24.0, i8** %16, align 8, !dbg !806
%17 = getelementptr inbounds { i8*, i8* }, { i8*, i8* }* %15, i32 0, i32 1, !dbg !806
store i8* %_24.1, i8** %17, align 8, !dbg !806
%_17.0 = bitcast [1 x { i8*, i8* }]* %_20 to [0 x { i8*, i8* }]*, !dbg !805
; call core::fmt::Arguments::new_v1
call void @_ZN4core3fmt9Arguments6new_v117h9bb77bc3dfdd6e76E(%"core::fmt::Arguments"* noalias nocapture sret dereferenceable(48) %_13, [0 x { [0 x i8]*, i64 }]* noalias nonnull readonly align 8 %_14.0, i64 2, [0 x { i8*, i8* }]* noalias nonnull readonly align 8 %_17.0, i64 1), !dbg !805
br label %bb8, !dbg !805
bb8: ; preds = %bb7
; call std::io::stdio::_print
call void @_ZN3std2io5stdio6_print17hec3a695dfcdb51c4E(%"core::fmt::Arguments"* noalias nocapture dereferenceable(48) %_13), !dbg !805
br label %bb9, !dbg !805
bb9: ; preds = %bb8
br label %bb2, !dbg !798
}
; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.declare(metadata, metadata, metadata) #2
; std::rt::lang_start_internal
; Function Attrs: nonlazybind uwtable
declare i64 @_ZN3std2rt19lang_start_internal17hcea4e704875ab132E({}* nonnull align 1, [3 x i64]* noalias readonly align 8 dereferenceable(24), i64, i8**) unnamed_addr #0
; Function Attrs: argmemonly nounwind
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i1 immarg) #3
; Function Attrs: nounwind nonlazybind uwtable
declare i32 @rust_eh_personality(i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*) unnamed_addr #4
; core::fmt::num::imp::<impl core::fmt::Display for i32>::fmt
; Function Attrs: nonlazybind uwtable
declare zeroext i1 @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17h8db0496dec18ff9aE"(i32* noalias readonly align 4 dereferenceable(4), %"core::fmt::Formatter"* align 8 dereferenceable(64)) unnamed_addr #0
; std::io::stdio::_print
; Function Attrs: nonlazybind uwtable
declare void @_ZN3std2io5stdio6_print17hec3a695dfcdb51c4E(%"core::fmt::Arguments"* noalias nocapture dereferenceable(48)) unnamed_addr #0
; Function Attrs: nonlazybind
define i32 @main(i32, i8**) unnamed_addr #5 {
top:
%2 = load volatile i8, i8* getelementptr inbounds ([34 x i8], [34 x i8]* @__rustc_debug_gdb_scripts_section__, i32 0, i32 0), align 1
%3 = sext i32 %0 to i64
; call std::rt::lang_start
%4 = call i64 @_ZN3std2rt10lang_start17h4e98f7fdca68e89dE(void ()* @_ZN10playground4main17h4a4fe2905f844b5dE, i64 %3, i8** %1)
%5 = trunc i64 %4 to i32
ret i32 %5
}
attributes #0 = { nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #1 = { inlinehint nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #2 = { nounwind readnone speculatable }
attributes #3 = { argmemonly nounwind }
attributes #4 = { nounwind nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" }
attributes #5 = { nonlazybind "target-cpu"="x86-64" }
!llvm.module.flags = !{!14, !15, !16, !17}
!llvm.dbg.cu = !{!18}
!0 = !DIGlobalVariableExpression(var: !1, expr: !DIExpression())
!1 = distinct !DIGlobalVariable(name: "vtable", scope: null, file: !2, type: !3, isLocal: true, isDefinition: true)
!2 = !DIFile(filename: "<unknown>", directory: "")
!3 = !DICompositeType(tag: DW_TAG_structure_type, name: "vtable", file: !2, align: 64, flags: DIFlagArtificial, elements: !4, vtableHolder: !5, identifier: "vtable")
!4 = !{}
!5 = !DICompositeType(tag: DW_TAG_structure_type, name: "closure-0", scope: !6, file: !2, size: 64, align: 64, elements: !9, templateParams: !4, identifier: "83d39a78868f3c03904531dc116580b5")
!6 = !DINamespace(name: "lang_start", scope: !7)
!7 = !DINamespace(name: "rt", scope: !8)
!8 = !DINamespace(name: "std", scope: null)
!9 = !{!10}
!10 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !5, file: !2, baseType: !11, size: 64, align: 64)
!11 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "fn()", baseType: !12, size: 64, align: 64, dwarfAddressSpace: 0)
!12 = !DISubroutineType(types: !13)
!13 = !{null}
!14 = !{i32 7, !"PIC Level", i32 2}
!15 = !{i32 7, !"PIE Level", i32 2}
!16 = !{i32 2, !"RtLibUseGOT", i32 1}
!17 = !{i32 2, !"Debug Info Version", i32 3}
!18 = distinct !DICompileUnit(language: DW_LANG_Rust, file: !19, producer: "clang LLVM (rustc version 1.43.1 (8d69840ab 2020-05-04))", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !20, globals: !37)
!19 = !DIFile(filename: "src/main.rs", directory: "/playground")
!20 = !{!21, !28}
!21 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "Result", scope: !22, file: !2, baseType: !24, size: 8, align: 8, flags: DIFlagEnumClass, elements: !25)
!22 = !DINamespace(name: "result", scope: !23)
!23 = !DINamespace(name: "core", scope: null)
!24 = !DIBasicType(name: "u8", size: 8, encoding: DW_ATE_unsigned)
!25 = !{!26, !27}
!26 = !DIEnumerator(name: "Ok", value: 0)
!27 = !DIEnumerator(name: "Err", value: 1)
!28 = !DICompositeType(tag: DW_TAG_enumeration_type, name: "Alignment", scope: !29, file: !2, baseType: !24, size: 8, align: 8, flags: DIFlagEnumClass, elements: !32)
!29 = !DINamespace(name: "v1", scope: !30)
!30 = !DINamespace(name: "rt", scope: !31)
!31 = !DINamespace(name: "fmt", scope: !23)
!32 = !{!33, !34, !35, !36}
!33 = !DIEnumerator(name: "Left", value: 0)
!34 = !DIEnumerator(name: "Right", value: 1)
!35 = !DIEnumerator(name: "Center", value: 2)
!36 = !DIEnumerator(name: "Unknown", value: 3)
!37 = !{!0}
!38 = distinct !DISubprogram(name: "lang_start<()>", linkageName: "_ZN3std2rt10lang_start17h4e98f7fdca68e89dE", scope: !7, file: !39, line: 62, type: !40, scopeLine: 62, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !49, retainedNodes: !45)
!39 = !DIFile(filename: "/rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd/src/libstd/rt.rs", directory: "")
!40 = !DISubroutineType(types: !41)
!41 = !{!42, !11, !42, !43}
!42 = !DIBasicType(name: "isize", size: 64, encoding: DW_ATE_signed)
!43 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const *const u8", baseType: !44, size: 64, align: 64, dwarfAddressSpace: 0)
!44 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const u8", baseType: !24, size: 64, align: 64, dwarfAddressSpace: 0)
!45 = !{!46, !47, !48}
!46 = !DILocalVariable(name: "main", arg: 1, scope: !38, file: !39, line: 63, type: !11)
!47 = !DILocalVariable(name: "argc", arg: 2, scope: !38, file: !39, line: 64, type: !42)
!48 = !DILocalVariable(name: "argv", arg: 3, scope: !38, file: !39, line: 65, type: !43)
!49 = !{!50}
!50 = !DITemplateTypeParameter(name: "T", type: !51)
!51 = !DIBasicType(name: "()", encoding: DW_ATE_unsigned)
!52 = !DILocation(line: 63, column: 4, scope: !38)
!53 = !DILocation(line: 64, column: 4, scope: !38)
!54 = !DILocation(line: 65, column: 4, scope: !38)
!55 = !DILocation(line: 67, column: 25, scope: !38)
!56 = !DILocation(line: 67, column: 24, scope: !38)
!57 = !DILocation(line: 67, column: 4, scope: !38)
!58 = !DILocation(line: 68, column: 1, scope: !38)
!59 = distinct !DISubprogram(name: "{{closure}}<()>", linkageName: "_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17ha5412e4ff1299b77E", scope: !6, file: !39, line: 67, type: !60, scopeLine: 67, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !49, retainedNodes: !64)
!60 = !DISubroutineType(types: !61)
!61 = !{!62, !63}
!62 = !DIBasicType(name: "i32", size: 32, encoding: DW_ATE_signed)
!63 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&closure-0", baseType: !5, size: 64, align: 64, dwarfAddressSpace: 0)
!64 = !{!65}
!65 = !DILocalVariable(name: "main", scope: !59, file: !39, line: 63, type: !11, align: 8)
!66 = !DILocation(line: 63, column: 4, scope: !59)
!67 = !DILocation(line: 67, column: 33, scope: !59)
!68 = !DILocation(line: 67, column: 48, scope: !59)
!69 = distinct !DISubprogram(name: "as_i32", linkageName: "_ZN3std3sys4unix7process14process_common8ExitCode6as_i3217h7ec8f604402542d5E", scope: !71, file: !70, line: 396, type: !78, scopeLine: 396, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !4, retainedNodes: !81)
!70 = !DIFile(filename: "/rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd/src/libstd/sys/unix/process/process_common.rs", directory: "")
!71 = !DICompositeType(tag: DW_TAG_structure_type, name: "ExitCode", scope: !72, file: !2, size: 8, align: 8, elements: !76, templateParams: !4, identifier: "138a31c9bb976ad982e847fa27c58f0")
!72 = !DINamespace(name: "process_common", scope: !73)
!73 = !DINamespace(name: "process", scope: !74)
!74 = !DINamespace(name: "unix", scope: !75)
!75 = !DINamespace(name: "sys", scope: !8)
!76 = !{!77}
!77 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !71, file: !2, baseType: !24, size: 8, align: 8)
!78 = !DISubroutineType(types: !79)
!79 = !{!62, !80}
!80 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&std::sys::unix::process::process_common::ExitCode", baseType: !71, size: 64, align: 64, dwarfAddressSpace: 0)
!81 = !{!82}
!82 = !DILocalVariable(name: "self", arg: 1, scope: !69, file: !70, line: 396, type: !80)
!83 = !DILocation(line: 396, column: 18, scope: !69)
!84 = !DILocation(line: 397, column: 8, scope: !69)
!85 = !DILocation(line: 398, column: 5, scope: !69)
!86 = distinct !DISubprogram(name: "add_usize", linkageName: "_ZN47_$LT$i32$u20$as$u20$core..iter..range..Step$GT$9add_usize17h58f32b59aa6ed552E", scope: !88, file: !87, line: 133, type: !91, scopeLine: 133, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !4, retainedNodes: !110)
!87 = !DIFile(filename: "/rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd/src/libcore/iter/range.rs", directory: "")
!88 = !DINamespace(name: "{{impl}}", scope: !89)
!89 = !DINamespace(name: "range", scope: !90)
!90 = !DINamespace(name: "iter", scope: !23)
!91 = !DISubroutineType(types: !92)
!92 = !{!93, !108, !109}
!93 = !DICompositeType(tag: DW_TAG_structure_type, name: "Option<i32>", scope: !94, file: !2, size: 64, align: 32, elements: !95, identifier: "834be39c65fd04a5b399f356099a4a67")
!94 = !DINamespace(name: "option", scope: !23)
!95 = !{!96}
!96 = !DICompositeType(tag: DW_TAG_variant_part, scope: !94, file: !2, size: 64, align: 32, elements: !97, templateParams: !100, identifier: "834be39c65fd04a5b399f356099a4a67_variant_part", discriminator: !106)
!97 = !{!98, !102}
!98 = !DIDerivedType(tag: DW_TAG_member, name: "None", scope: !96, file: !2, baseType: !99, size: 64, align: 32, extraData: i64 0)
!99 = !DICompositeType(tag: DW_TAG_structure_type, name: "None", scope: !93, file: !2, size: 64, align: 32, elements: !4, templateParams: !100, identifier: "834be39c65fd04a5b399f356099a4a67::None")
!100 = !{!101}
!101 = !DITemplateTypeParameter(name: "T", type: !62)
!102 = !DIDerivedType(tag: DW_TAG_member, name: "Some", scope: !96, file: !2, baseType: !103, size: 64, align: 32, extraData: i64 1)
!103 = !DICompositeType(tag: DW_TAG_structure_type, name: "Some", scope: !93, file: !2, size: 64, align: 32, elements: !104, templateParams: !100, identifier: "834be39c65fd04a5b399f356099a4a67::Some")
!104 = !{!105}
!105 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !103, file: !2, baseType: !62, size: 32, align: 32, offset: 32)
!106 = !DIDerivedType(tag: DW_TAG_member, scope: !94, file: !2, baseType: !107, size: 32, align: 32, flags: DIFlagArtificial)
!107 = !DIBasicType(name: "u32", size: 32, encoding: DW_ATE_unsigned)
!108 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&i32", baseType: !62, size: 64, align: 64, dwarfAddressSpace: 0)
!109 = !DIBasicType(name: "usize", size: 64, encoding: DW_ATE_unsigned)
!110 = !{!111, !112, !113, !115}
!111 = !DILocalVariable(name: "self", arg: 1, scope: !86, file: !87, line: 133, type: !108)
!112 = !DILocalVariable(name: "n", arg: 2, scope: !86, file: !87, line: 133, type: !109)
!113 = !DILocalVariable(name: "n_as_unsigned", scope: !114, file: !87, line: 135, type: !107, align: 4)
!114 = distinct !DILexicalBlock(scope: !86, file: !87, line: 135, column: 20)
!115 = !DILocalVariable(name: "wrapped", scope: !116, file: !87, line: 139, type: !62, align: 4)
!116 = distinct !DILexicalBlock(scope: !114, file: !87, line: 139, column: 24)
!117 = !DILocation(line: 133, column: 25, scope: !86)
!118 = !DILocation(line: 133, column: 32, scope: !86)
!119 = !DILocation(line: 134, column: 22, scope: !86)
!120 = !DILocation(line: 135, column: 20, scope: !86)
!121 = !{i32 0, i32 2}
!122 = !DILocation(line: 146, column: 30, scope: !86)
!123 = !DILocation(line: 134, column: 16, scope: !86)
!124 = !DILocation(line: 135, column: 23, scope: !86)
!125 = !DILocation(line: 135, column: 23, scope: !114)
!126 = !DILocation(line: 139, column: 39, scope: !114)
!127 = !DILocation(line: 139, column: 38, scope: !114)
!128 = !DILocation(line: 139, column: 28, scope: !116)
!129 = !DILocation(line: 140, column: 38, scope: !116)
!130 = !DILocation(line: 140, column: 27, scope: !116)
!131 = !DILocation(line: 140, column: 24, scope: !116)
!132 = !DILocation(line: 143, column: 28, scope: !116)
!133 = !DILocation(line: 141, column: 28, scope: !116)
!134 = !DILocation(line: 148, column: 13, scope: !86)
!135 = distinct !DISubprogram(name: "copy_nonoverlapping<i32>", linkageName: "_ZN4core10intrinsics19copy_nonoverlapping17hc0c4590bff1ea0f7E", scope: !137, file: !136, line: 1991, type: !138, scopeLine: 1991, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !100, retainedNodes: !142)
!136 = !DIFile(filename: "/rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd/src/libcore/intrinsics.rs", directory: "")
!137 = !DINamespace(name: "intrinsics", scope: !23)
!138 = !DISubroutineType(types: !139)
!139 = !{null, !140, !141, !109}
!140 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const i32", baseType: !62, size: 64, align: 64, dwarfAddressSpace: 0)
!141 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*mut i32", baseType: !62, size: 64, align: 64, dwarfAddressSpace: 0)
!142 = !{!143, !144, !145}
!143 = !DILocalVariable(name: "src", arg: 1, scope: !135, file: !136, line: 1991, type: !140)
!144 = !DILocalVariable(name: "dst", arg: 2, scope: !135, file: !136, line: 1991, type: !141)
!145 = !DILocalVariable(name: "count", arg: 3, scope: !135, file: !136, line: 1991, type: !109)
!146 = !DILocation(line: 1991, column: 37, scope: !135)
!147 = !DILocation(line: 1991, column: 52, scope: !135)
!148 = !DILocation(line: 1991, column: 65, scope: !135)
!149 = !DILocation(line: 1999, column: 4, scope: !135)
!150 = !DILocation(line: 2000, column: 1, scope: !135)
!151 = distinct !DISubprogram(name: "copy_nonoverlapping<u8>", linkageName: "_ZN4core10intrinsics19copy_nonoverlapping17hf8deb65fbe0d5b49E", scope: !137, file: !136, line: 1991, type: !152, scopeLine: 1991, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !159, retainedNodes: !155)
!152 = !DISubroutineType(types: !153)
!153 = !{null, !44, !154, !109}
!154 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*mut u8", baseType: !24, size: 64, align: 64, dwarfAddressSpace: 0)
!155 = !{!156, !157, !158}
!156 = !DILocalVariable(name: "src", arg: 1, scope: !151, file: !136, line: 1991, type: !44)
!157 = !DILocalVariable(name: "dst", arg: 2, scope: !151, file: !136, line: 1991, type: !154)
!158 = !DILocalVariable(name: "count", arg: 3, scope: !151, file: !136, line: 1991, type: !109)
!159 = !{!160}
!160 = !DITemplateTypeParameter(name: "T", type: !24)
!161 = !DILocation(line: 1991, column: 37, scope: !151)
!162 = !DILocation(line: 1991, column: 52, scope: !151)
!163 = !DILocation(line: 1991, column: 65, scope: !151)
!164 = !DILocation(line: 1999, column: 4, scope: !151)
!165 = !DILocation(line: 2000, column: 1, scope: !151)
!166 = distinct !DISubprogram(name: "lt", linkageName: "_ZN4core3cmp5impls55_$LT$impl$u20$core..cmp..PartialOrd$u20$for$u20$i32$GT$2lt17h6242e978760dcbacE", scope: !168, file: !167, line: 1136, type: !171, scopeLine: 1136, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !4, retainedNodes: !174)
!167 = !DIFile(filename: "/rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd/src/libcore/cmp.rs", directory: "")
!168 = !DINamespace(name: "{{impl}}", scope: !169)
!169 = !DINamespace(name: "impls", scope: !170)
!170 = !DINamespace(name: "cmp", scope: !23)
!171 = !DISubroutineType(types: !172)
!172 = !{!173, !108, !108}
!173 = !DIBasicType(name: "bool", size: 8, encoding: DW_ATE_boolean)
!174 = !{!175, !176}
!175 = !DILocalVariable(name: "self", arg: 1, scope: !166, file: !167, line: 1136, type: !108)
!176 = !DILocalVariable(name: "other", arg: 2, scope: !166, file: !167, line: 1136, type: !108)
!177 = !DILocation(line: 1136, column: 22, scope: !166)
!178 = !DILocation(line: 1136, column: 29, scope: !166)
!179 = !DILocation(line: 1136, column: 51, scope: !166)
!180 = !DILocation(line: 1136, column: 61, scope: !166)
!181 = !DILocation(line: 1136, column: 71, scope: !166)
!182 = distinct !DISubprogram(name: "new<i32>", linkageName: "_ZN4core3fmt10ArgumentV13new17h51e098059b2fc3dcE", scope: !184, file: !183, line: 283, type: !225, scopeLine: 283, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !100, retainedNodes: !230)
!183 = !DIFile(filename: "/rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd/src/libcore/fmt/mod.rs", directory: "")
!184 = !DICompositeType(tag: DW_TAG_structure_type, name: "ArgumentV1", scope: !31, file: !2, size: 128, align: 64, elements: !185, templateParams: !4, identifier: "48afefd0fe6abbeb7899e418aefb71fd")
!185 = !{!186, !189}
!186 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !184, file: !2, baseType: !187, size: 64, align: 64)
!187 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&core::fmt::::Opaque", baseType: !188, size: 64, align: 64, dwarfAddressSpace: 0)
!188 = !DICompositeType(tag: DW_TAG_structure_type, name: "Opaque", file: !2, align: 8, elements: !4, identifier: "486bbea1738750b57a22c5b1a0d2ff4d")
!189 = !DIDerivedType(tag: DW_TAG_member, name: "formatter", scope: !184, file: !2, baseType: !190, size: 64, align: 64, offset: 64)
!190 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "fn(&core::fmt::::Opaque, &mut core::fmt::Formatter) -> core::result::Result<(), core::fmt::Error>", baseType: !191, size: 64, align: 64, dwarfAddressSpace: 0)
!191 = !DISubroutineType(types: !192)
!192 = !{!21, !187, !193}
!193 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::fmt::Formatter", baseType: !194, size: 64, align: 64, dwarfAddressSpace: 0)
!194 = !DICompositeType(tag: DW_TAG_structure_type, name: "Formatter", scope: !31, file: !2, size: 512, align: 64, elements: !195, templateParams: !4, identifier: "53d5dfe1238b5c464dbe21b017d2cb1c")
!195 = !{!196, !197, !199, !200, !215, !216}
!196 = !DIDerivedType(tag: DW_TAG_member, name: "flags", scope: !194, file: !2, baseType: !107, size: 32, align: 32, offset: 384)
!197 = !DIDerivedType(tag: DW_TAG_member, name: "fill", scope: !194, file: !2, baseType: !198, size: 32, align: 32, offset: 416)
!198 = !DIBasicType(name: "char", size: 32, encoding: DW_ATE_unsigned_char)
!199 = !DIDerivedType(tag: DW_TAG_member, name: "align", scope: !194, file: !2, baseType: !28, size: 8, align: 8, offset: 448)
!200 = !DIDerivedType(tag: DW_TAG_member, name: "width", scope: !194, file: !2, baseType: !201, size: 128, align: 64)
!201 = !DICompositeType(tag: DW_TAG_structure_type, name: "Option<usize>", scope: !94, file: !2, size: 128, align: 64, elements: !202, identifier: "5b22ba34ff557475f7e29c0115668089")
!202 = !{!203}
!203 = !DICompositeType(tag: DW_TAG_variant_part, scope: !94, file: !2, size: 128, align: 64, elements: !204, templateParams: !207, identifier: "5b22ba34ff557475f7e29c0115668089_variant_part", discriminator: !213)
!204 = !{!205, !209}
!205 = !DIDerivedType(tag: DW_TAG_member, name: "None", scope: !203, file: !2, baseType: !206, size: 128, align: 64, extraData: i64 0)
!206 = !DICompositeType(tag: DW_TAG_structure_type, name: "None", scope: !201, file: !2, size: 128, align: 64, elements: !4, templateParams: !207, identifier: "5b22ba34ff557475f7e29c0115668089::None")
!207 = !{!208}
!208 = !DITemplateTypeParameter(name: "T", type: !109)
!209 = !DIDerivedType(tag: DW_TAG_member, name: "Some", scope: !203, file: !2, baseType: !210, size: 128, align: 64, extraData: i64 1)
!210 = !DICompositeType(tag: DW_TAG_structure_type, name: "Some", scope: !201, file: !2, size: 128, align: 64, elements: !211, templateParams: !207, identifier: "5b22ba34ff557475f7e29c0115668089::Some")
!211 = !{!212}
!212 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !210, file: !2, baseType: !109, size: 64, align: 64, offset: 64)
!213 = !DIDerivedType(tag: DW_TAG_member, scope: !94, file: !2, baseType: !214, size: 64, align: 64, flags: DIFlagArtificial)
!214 = !DIBasicType(name: "u64", size: 64, encoding: DW_ATE_unsigned)
!215 = !DIDerivedType(tag: DW_TAG_member, name: "precision", scope: !194, file: !2, baseType: !201, size: 128, align: 64, offset: 128)
!216 = !DIDerivedType(tag: DW_TAG_member, name: "buf", scope: !194, file: !2, baseType: !217, size: 128, align: 64, offset: 256)
!217 = !DICompositeType(tag: DW_TAG_structure_type, name: "&mut Write", scope: !31, file: !2, size: 128, align: 64, elements: !218, templateParams: !4, identifier: "94e75f3933ed01136240090d0a721510")
!218 = !{!219, !220}
!219 = !DIDerivedType(tag: DW_TAG_member, name: "pointer", scope: !217, file: !2, baseType: !154, size: 64, align: 64, flags: DIFlagArtificial)
!220 = !DIDerivedType(tag: DW_TAG_member, name: "vtable", scope: !217, file: !2, baseType: !221, size: 64, align: 64, offset: 64, flags: DIFlagArtificial)
!221 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&[usize; 3]", baseType: !222, size: 64, align: 64, dwarfAddressSpace: 0)
!222 = !DICompositeType(tag: DW_TAG_array_type, baseType: !109, size: 192, align: 64, elements: !223)
!223 = !{!224}
!224 = !DISubrange(count: 3)
!225 = !DISubroutineType(types: !226)
!226 = !{!184, !108, !227}
!227 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "fn(&i32, &mut core::fmt::Formatter) -> core::result::Result<(), core::fmt::Error>", baseType: !228, size: 64, align: 64, dwarfAddressSpace: 0)
!228 = !DISubroutineType(types: !229)
!229 = !{!21, !108, !193}
!230 = !{!231, !232}
!231 = !DILocalVariable(name: "x", arg: 1, scope: !182, file: !183, line: 283, type: !108)
!232 = !DILocalVariable(name: "f", arg: 2, scope: !182, file: !183, line: 283, type: !227)
!233 = !DILocation(line: 283, column: 22, scope: !182)
!234 = !DILocation(line: 283, column: 32, scope: !182)
!235 = !DILocation(line: 284, column: 41, scope: !182)
!236 = !DILocation(line: 284, column: 67, scope: !182)
!237 = !DILocation(line: 284, column: 17, scope: !182)
!238 = !DILocation(line: 285, column: 5, scope: !182)
!239 = distinct !DISubprogram(name: "new_v1", linkageName: "_ZN4core3fmt9Arguments6new_v117h9bb77bc3dfdd6e76E", scope: !240, file: !183, line: 321, type: !302, scopeLine: 321, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !4, retainedNodes: !304)
!240 = !DICompositeType(tag: DW_TAG_structure_type, name: "Arguments", scope: !31, file: !2, size: 384, align: 64, elements: !241, templateParams: !4, identifier: "d9b8834a2cd901fac2891b5c34e5cb30")
!241 = !{!242, !252, !296}
!242 = !DIDerivedType(tag: DW_TAG_member, name: "pieces", scope: !240, file: !2, baseType: !243, size: 128, align: 64)
!243 = !DICompositeType(tag: DW_TAG_structure_type, name: "&[&str]", file: !2, size: 128, align: 64, elements: !244, templateParams: !4, identifier: "6dc4ddb2dbcf2912a5f3983b5bf0572")
!244 = !{!245, !251}
!245 = !DIDerivedType(tag: DW_TAG_member, name: "data_ptr", scope: !243, file: !2, baseType: !246, size: 64, align: 64)
!246 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const &str", baseType: !247, size: 64, align: 64, dwarfAddressSpace: 0)
!247 = !DICompositeType(tag: DW_TAG_structure_type, name: "&str", file: !2, size: 128, align: 64, elements: !248, templateParams: !4, identifier: "111094d970b097647de579f9c509ef08")
!248 = !{!249, !250}
!249 = !DIDerivedType(tag: DW_TAG_member, name: "data_ptr", scope: !247, file: !2, baseType: !44, size: 64, align: 64)
!250 = !DIDerivedType(tag: DW_TAG_member, name: "length", scope: !247, file: !2, baseType: !109, size: 64, align: 64, offset: 64)
!251 = !DIDerivedType(tag: DW_TAG_member, name: "length", scope: !243, file: !2, baseType: !109, size: 64, align: 64, offset: 64)
!252 = !DIDerivedType(tag: DW_TAG_member, name: "fmt", scope: !240, file: !2, baseType: !253, size: 128, align: 64, offset: 128)
!253 = !DICompositeType(tag: DW_TAG_structure_type, name: "Option<&[core::fmt::rt::v1::Argument]>", scope: !94, file: !2, size: 128, align: 64, elements: !254, identifier: "45e52a934c7718468dc62a796052d19d")
!254 = !{!255}
!255 = !DICompositeType(tag: DW_TAG_variant_part, scope: !94, file: !2, size: 128, align: 64, elements: !256, templateParams: !259, identifier: "45e52a934c7718468dc62a796052d19d_variant_part", discriminator: !213)
!256 = !{!257, !292}
!257 = !DIDerivedType(tag: DW_TAG_member, name: "None", scope: !255, file: !2, baseType: !258, size: 128, align: 64, extraData: i64 0)
!258 = !DICompositeType(tag: DW_TAG_structure_type, name: "None", scope: !253, file: !2, size: 128, align: 64, elements: !4, templateParams: !259, identifier: "45e52a934c7718468dc62a796052d19d::None")
!259 = !{!260}
!260 = !DITemplateTypeParameter(name: "T", type: !261)
!261 = !DICompositeType(tag: DW_TAG_structure_type, name: "&[core::fmt::rt::v1::Argument]", file: !2, size: 128, align: 64, elements: !262, templateParams: !4, identifier: "1e84b40a28a8c6b93854c81688a86143")
!262 = !{!263, !291}
!263 = !DIDerivedType(tag: DW_TAG_member, name: "data_ptr", scope: !261, file: !2, baseType: !264, size: 64, align: 64)
!264 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const core::fmt::rt::v1::Argument", baseType: !265, size: 64, align: 64, dwarfAddressSpace: 0)
!265 = !DICompositeType(tag: DW_TAG_structure_type, name: "Argument", scope: !29, file: !2, size: 448, align: 64, elements: !266, templateParams: !4, identifier: "fc1c3341066a8a7da66dde791db00817")
!266 = !{!267, !268}
!267 = !DIDerivedType(tag: DW_TAG_member, name: "position", scope: !265, file: !2, baseType: !109, size: 64, align: 64)
!268 = !DIDerivedType(tag: DW_TAG_member, name: "format", scope: !265, file: !2, baseType: !269, size: 384, align: 64, offset: 64)
!269 = !DICompositeType(tag: DW_TAG_structure_type, name: "FormatSpec", scope: !29, file: !2, size: 384, align: 64, elements: !270, templateParams: !4, identifier: "d668edb2ab09d86257e3cefb21f1d430")
!270 = !{!271, !272, !273, !274, !290}
!271 = !DIDerivedType(tag: DW_TAG_member, name: "fill", scope: !269, file: !2, baseType: !198, size: 32, align: 32, offset: 256)
!272 = !DIDerivedType(tag: DW_TAG_member, name: "align", scope: !269, file: !2, baseType: !28, size: 8, align: 8, offset: 320)
!273 = !DIDerivedType(tag: DW_TAG_member, name: "flags", scope: !269, file: !2, baseType: !107, size: 32, align: 32, offset: 288)
!274 = !DIDerivedType(tag: DW_TAG_member, name: "precision", scope: !269, file: !2, baseType: !275, size: 128, align: 64)
!275 = !DICompositeType(tag: DW_TAG_structure_type, name: "Count", scope: !29, file: !2, size: 128, align: 64, elements: !276, identifier: "766bf11636ff55eccd629d0c6cd03c7")
!276 = !{!277}
!277 = !DICompositeType(tag: DW_TAG_variant_part, scope: !29, file: !2, size: 128, align: 64, elements: !278, templateParams: !4, identifier: "766bf11636ff55eccd629d0c6cd03c7_variant_part", discriminator: !289)
!278 = !{!279, !283, !287}
!279 = !DIDerivedType(tag: DW_TAG_member, name: "Is", scope: !277, file: !2, baseType: !280, size: 128, align: 64, extraData: i64 0)
!280 = !DICompositeType(tag: DW_TAG_structure_type, name: "Is", scope: !275, file: !2, size: 128, align: 64, elements: !281, templateParams: !4, identifier: "766bf11636ff55eccd629d0c6cd03c7::Is")
!281 = !{!282}
!282 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !280, file: !2, baseType: !109, size: 64, align: 64, offset: 64)
!283 = !DIDerivedType(tag: DW_TAG_member, name: "Param", scope: !277, file: !2, baseType: !284, size: 128, align: 64, extraData: i64 1)
!284 = !DICompositeType(tag: DW_TAG_structure_type, name: "Param", scope: !275, file: !2, size: 128, align: 64, elements: !285, templateParams: !4, identifier: "766bf11636ff55eccd629d0c6cd03c7::Param")
!285 = !{!286}
!286 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !284, file: !2, baseType: !109, size: 64, align: 64, offset: 64)
!287 = !DIDerivedType(tag: DW_TAG_member, name: "Implied", scope: !277, file: !2, baseType: !288, size: 128, align: 64, extraData: i64 2)
!288 = !DICompositeType(tag: DW_TAG_structure_type, name: "Implied", scope: !275, file: !2, size: 128, align: 64, elements: !4, templateParams: !4, identifier: "766bf11636ff55eccd629d0c6cd03c7::Implied")
!289 = !DIDerivedType(tag: DW_TAG_member, scope: !29, file: !2, baseType: !214, size: 64, align: 64, flags: DIFlagArtificial)
!290 = !DIDerivedType(tag: DW_TAG_member, name: "width", scope: !269, file: !2, baseType: !275, size: 128, align: 64, offset: 128)
!291 = !DIDerivedType(tag: DW_TAG_member, name: "length", scope: !261, file: !2, baseType: !109, size: 64, align: 64, offset: 64)
!292 = !DIDerivedType(tag: DW_TAG_member, name: "Some", scope: !255, file: !2, baseType: !293, size: 128, align: 64)
!293 = !DICompositeType(tag: DW_TAG_structure_type, name: "Some", scope: !253, file: !2, size: 128, align: 64, elements: !294, templateParams: !259, identifier: "45e52a934c7718468dc62a796052d19d::Some")
!294 = !{!295}
!295 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !293, file: !2, baseType: !261, size: 128, align: 64)
!296 = !DIDerivedType(tag: DW_TAG_member, name: "args", scope: !240, file: !2, baseType: !297, size: 128, align: 64, offset: 256)
!297 = !DICompositeType(tag: DW_TAG_structure_type, name: "&[core::fmt::ArgumentV1]", file: !2, size: 128, align: 64, elements: !298, templateParams: !4, identifier: "576739d26d04321851c8e6cd207c5c17")
!298 = !{!299, !301}
!299 = !DIDerivedType(tag: DW_TAG_member, name: "data_ptr", scope: !297, file: !2, baseType: !300, size: 64, align: 64)
!300 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*const core::fmt::ArgumentV1", baseType: !184, size: 64, align: 64, dwarfAddressSpace: 0)
!301 = !DIDerivedType(tag: DW_TAG_member, name: "length", scope: !297, file: !2, baseType: !109, size: 64, align: 64, offset: 64)
!302 = !DISubroutineType(types: !303)
!303 = !{!240, !243, !297}
!304 = !{!305, !306}
!305 = !DILocalVariable(name: "pieces", arg: 1, scope: !239, file: !183, line: 321, type: !243)
!306 = !DILocalVariable(name: "args", arg: 2, scope: !239, file: !183, line: 321, type: !297)
!307 = !DILocation(line: 321, column: 18, scope: !239)
!308 = !DILocation(line: 321, column: 41, scope: !239)
!309 = !DILocation(line: 322, column: 33, scope: !239)
!310 = !DILocation(line: 322, column: 8, scope: !239)
!311 = !DILocation(line: 323, column: 5, scope: !239)
!312 = distinct !DISubprogram(name: "swap<i32>", linkageName: "_ZN4core3mem4swap17he16b24ad0b897db6E", scope: !314, file: !313, line: 553, type: !315, scopeLine: 553, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !100, retainedNodes: !318)
!313 = !DIFile(filename: "/rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd/src/libcore/mem/mod.rs", directory: "")
!314 = !DINamespace(name: "mem", scope: !23)
!315 = !DISubroutineType(types: !316)
!316 = !{null, !317, !317}
!317 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut i32", baseType: !62, size: 64, align: 64, dwarfAddressSpace: 0)
!318 = !{!319, !320}
!319 = !DILocalVariable(name: "x", arg: 1, scope: !312, file: !313, line: 553, type: !317)
!320 = !DILocalVariable(name: "y", arg: 2, scope: !312, file: !313, line: 553, type: !317)
!321 = !DILocation(line: 553, column: 15, scope: !312)
!322 = !DILocation(line: 553, column: 26, scope: !312)
!323 = !DILocation(line: 557, column: 8, scope: !312)
!324 = !DILocation(line: 559, column: 1, scope: !312)
!325 = distinct !DISubprogram(name: "wrapping_add", linkageName: "_ZN4core3num21_$LT$impl$u20$u32$GT$12wrapping_add17h8e1cf463cd9881b5E", scope: !327, file: !326, line: 3251, type: !329, scopeLine: 3251, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !4, retainedNodes: !331)
!326 = !DIFile(filename: "/rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd/src/libcore/num/mod.rs", directory: "")
!327 = !DINamespace(name: "{{impl}}", scope: !328)
!328 = !DINamespace(name: "num", scope: !23)
!329 = !DISubroutineType(types: !330)
!330 = !{!107, !107, !107}
!331 = !{!332, !333}
!332 = !DILocalVariable(name: "self", arg: 1, scope: !325, file: !326, line: 3251, type: !107)
!333 = !DILocalVariable(name: "rhs", arg: 2, scope: !325, file: !326, line: 3251, type: !107)
!334 = !DILocation(line: 3251, column: 38, scope: !325)
!335 = !DILocation(line: 3251, column: 44, scope: !325)
!336 = !DILocation(line: 3252, column: 16, scope: !325)
!337 = !DILocation(line: 3253, column: 13, scope: !325)
!338 = distinct !DISubprogram(name: "call_once<closure-0,()>", linkageName: "_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17ha18773bce9637d1bE", scope: !340, file: !339, line: 232, type: !343, scopeLine: 232, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !349, retainedNodes: !346)
!339 = !DIFile(filename: "/rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd/src/libcore/ops/function.rs", directory: "")
!340 = !DINamespace(name: "FnOnce", scope: !341)
!341 = !DINamespace(name: "function", scope: !342)
!342 = !DINamespace(name: "ops", scope: !23)
!343 = !DISubroutineType(types: !344)
!344 = !{!62, !345}
!345 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*mut closure-0", baseType: !5, size: 64, align: 64, dwarfAddressSpace: 0)
!346 = !{!347, !348}
!347 = !DILocalVariable(arg: 1, scope: !338, file: !339, line: 232, type: !345)
!348 = !DILocalVariable(arg: 2, scope: !338, file: !339, line: 232, type: !51)
!349 = !{!350, !351}
!350 = !DITemplateTypeParameter(name: "Self", type: !5)
!351 = !DITemplateTypeParameter(name: "Args", type: !51)
!352 = !DILocation(line: 232, column: 4, scope: !338)
!353 = distinct !DISubprogram(name: "call_once<closure-0,()>", linkageName: "_ZN4core3ops8function6FnOnce9call_once17hf39813048d37b602E", scope: !340, file: !339, line: 232, type: !354, scopeLine: 232, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !349, retainedNodes: !356)
!354 = !DISubroutineType(types: !355)
!355 = !{!62, !5}
!356 = !{!357, !358}
!357 = !DILocalVariable(arg: 1, scope: !353, file: !339, line: 232, type: !5)
!358 = !DILocalVariable(arg: 2, scope: !353, file: !339, line: 232, type: !51)
!359 = !DILocation(line: 232, column: 4, scope: !353)
!360 = distinct !DISubprogram(name: "drop_in_place<closure-0>", linkageName: "_ZN4core3ptr13drop_in_place17hb7f00348eda9b683E", scope: !362, file: !361, line: 177, type: !363, scopeLine: 177, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !367, retainedNodes: !365)
!361 = !DIFile(filename: "/rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd/src/libcore/ptr/mod.rs", directory: "")
!362 = !DINamespace(name: "ptr", scope: !23)
!363 = !DISubroutineType(types: !364)
!364 = !{null, !345}
!365 = !{!366}
!366 = !DILocalVariable(arg: 1, scope: !360, file: !361, line: 177, type: !345)
!367 = !{!368}
!368 = !DITemplateTypeParameter(name: "T", type: !5)
!369 = !DILocation(line: 177, scope: !360)
!370 = distinct !DISubprogram(name: "swap_nonoverlapping<i32>", linkageName: "_ZN4core3ptr19swap_nonoverlapping17h858d11028c044449E", scope: !362, file: !361, line: 394, type: !371, scopeLine: 394, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !100, retainedNodes: !373)
!371 = !DISubroutineType(types: !372)
!372 = !{null, !141, !141, !109}
!373 = !{!374, !375, !376, !377, !379, !381}
!374 = !DILocalVariable(name: "x", arg: 1, scope: !370, file: !361, line: 394, type: !141)
!375 = !DILocalVariable(name: "y", arg: 2, scope: !370, file: !361, line: 394, type: !141)
!376 = !DILocalVariable(name: "count", arg: 3, scope: !370, file: !361, line: 394, type: !109)
!377 = !DILocalVariable(name: "x", scope: !378, file: !361, line: 399, type: !154, align: 8)
!378 = distinct !DILexicalBlock(scope: !370, file: !361, line: 399, column: 4)
!379 = !DILocalVariable(name: "y", scope: !380, file: !361, line: 400, type: !154, align: 8)
!380 = distinct !DILexicalBlock(scope: !378, file: !361, line: 400, column: 4)
!381 = !DILocalVariable(name: "len", scope: !382, file: !361, line: 401, type: !109, align: 8)
!382 = distinct !DILexicalBlock(scope: !380, file: !361, line: 401, column: 4)
!383 = !DILocation(line: 394, column: 37, scope: !370)
!384 = !DILocation(line: 394, column: 48, scope: !370)
!385 = !DILocation(line: 394, column: 59, scope: !370)
!386 = !DILocation(line: 399, column: 12, scope: !370)
!387 = !DILocation(line: 399, column: 8, scope: !378)
!388 = !DILocation(line: 400, column: 12, scope: !378)
!389 = !DILocation(line: 400, column: 8, scope: !380)
!390 = !DILocation(line: 277, column: 4, scope: !391, inlinedAt: !394)
!391 = distinct !DISubprogram(name: "size_of<i32>", linkageName: "_ZN4core3mem7size_of17he0020c41feb12d17E", scope: !314, file: !313, line: 276, type: !392, scopeLine: 276, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !100, retainedNodes: !4)
!392 = !DISubroutineType(types: !393)
!393 = !{!109}
!394 = distinct !DILocation(line: 401, column: 14, scope: !380)
!395 = !DILocation(line: 401, column: 14, scope: !380)
!396 = !DILocation(line: 401, column: 8, scope: !382)
!397 = !DILocation(line: 402, column: 4, scope: !382)
!398 = !DILocation(line: 403, column: 1, scope: !370)
!399 = distinct !DISubprogram(name: "swap_nonoverlapping_one<i32>", linkageName: "_ZN4core3ptr23swap_nonoverlapping_one17he6fda9b6a548efdfE", scope: !362, file: !361, line: 406, type: !400, scopeLine: 406, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !100, retainedNodes: !402)
!400 = !DISubroutineType(types: !401)
!401 = !{null, !141, !141}
!402 = !{!403, !404, !405}
!403 = !DILocalVariable(name: "x", arg: 1, scope: !399, file: !361, line: 406, type: !141)
!404 = !DILocalVariable(name: "y", arg: 2, scope: !399, file: !361, line: 406, type: !141)
!405 = !DILocalVariable(name: "z", scope: !406, file: !361, line: 410, type: !62, align: 4)
!406 = distinct !DILexicalBlock(scope: !399, file: !361, line: 410, column: 8)
!407 = !DILocation(line: 406, column: 48, scope: !399)
!408 = !DILocation(line: 406, column: 59, scope: !399)
!409 = !DILocation(line: 409, column: 7, scope: !399)
!410 = !DILocation(line: 277, column: 4, scope: !391, inlinedAt: !411)
!411 = distinct !DILocation(line: 409, column: 7, scope: !399)
!412 = !DILocation(line: 406, scope: !399)
!413 = !DILocation(line: 409, column: 4, scope: !399)
!414 = !DILocation(line: 414, column: 8, scope: !399)
!415 = !DILocation(line: 410, column: 16, scope: !399)
!416 = !DILocation(line: 410, column: 12, scope: !406)
!417 = !DILocation(line: 411, column: 8, scope: !406)
!418 = !DILocation(line: 412, column: 17, scope: !406)
!419 = !DILocation(line: 412, column: 8, scope: !406)
!420 = !DILocation(line: 413, column: 4, scope: !399)
!421 = !DILocation(line: 416, column: 1, scope: !399)
!422 = !{i8 0, i8 2}
!423 = distinct !DISubprogram(name: "swap_nonoverlapping_bytes", linkageName: "_ZN4core3ptr25swap_nonoverlapping_bytes17h9e7c5d042bbac38fE", scope: !362, file: !361, line: 419, type: !424, scopeLine: 419, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !4, retainedNodes: !426)
!424 = !DISubroutineType(types: !425)
!425 = !{null, !154, !154, !109}
!426 = !{!427, !428, !429, !430, !432, !434, !454, !456, !458, !460, !477, !479, !481, !483}
!427 = !DILocalVariable(name: "x", arg: 1, scope: !423, file: !361, line: 419, type: !154)
!428 = !DILocalVariable(name: "y", arg: 2, scope: !423, file: !361, line: 419, type: !154)
!429 = !DILocalVariable(name: "len", arg: 3, scope: !423, file: !361, line: 419, type: !109)
!430 = !DILocalVariable(name: "block_size", scope: !431, file: !361, line: 430, type: !109, align: 8)
!431 = distinct !DILexicalBlock(scope: !423, file: !361, line: 430, column: 4)
!432 = !DILocalVariable(name: "i", scope: !433, file: !361, line: 435, type: !109, align: 8)
!433 = distinct !DILexicalBlock(scope: !431, file: !361, line: 435, column: 4)
!434 = !DILocalVariable(name: "t", scope: !435, file: !361, line: 439, type: !436, align: 32)
!435 = distinct !DILexicalBlock(scope: !433, file: !361, line: 439, column: 8)
!436 = !DICompositeType(tag: DW_TAG_union_type, name: "MaybeUninit<core::ptr::swap_nonoverlapping_bytes::Block>", scope: !437, file: !2, size: 256, align: 256, elements: !438, templateParams: !452, identifier: "940729d0ce402ec262dd21044bd3c23a")
!437 = !DINamespace(name: "maybe_uninit", scope: !314)
!438 = !{!439, !440}
!439 = !DIDerivedType(tag: DW_TAG_member, name: "uninit", scope: !436, file: !2, baseType: !51, align: 8)
!440 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !436, file: !2, baseType: !441, size: 256, align: 256)
!441 = !DICompositeType(tag: DW_TAG_structure_type, name: "ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::Block>", scope: !442, file: !2, size: 256, align: 256, elements: !443, templateParams: !452, identifier: "e30bd605c69ea5572c074cf3c886c1dd")
!442 = !DINamespace(name: "manually_drop", scope: !314)
!443 = !{!444}
!444 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !441, file: !2, baseType: !445, size: 256, align: 256)
!445 = !DICompositeType(tag: DW_TAG_structure_type, name: "Block", scope: !446, file: !2, size: 256, align: 256, elements: !447, templateParams: !4, identifier: "7ecf0cef02cb2f6dd99c4b79c77098df")
!446 = !DINamespace(name: "swap_nonoverlapping_bytes", scope: !362)
!447 = !{!448, !449, !450, !451}
!448 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !445, file: !2, baseType: !214, size: 64, align: 64)
!449 = !DIDerivedType(tag: DW_TAG_member, name: "__1", scope: !445, file: !2, baseType: !214, size: 64, align: 64, offset: 64)
!450 = !DIDerivedType(tag: DW_TAG_member, name: "__2", scope: !445, file: !2, baseType: !214, size: 64, align: 64, offset: 128)
!451 = !DIDerivedType(tag: DW_TAG_member, name: "__3", scope: !445, file: !2, baseType: !214, size: 64, align: 64, offset: 192)
!452 = !{!453}
!453 = !DITemplateTypeParameter(name: "T", type: !445)
!454 = !DILocalVariable(name: "t", scope: !455, file: !361, line: 440, type: !154, align: 8)
!455 = distinct !DILexicalBlock(scope: !435, file: !361, line: 440, column: 8)
!456 = !DILocalVariable(name: "x", scope: !457, file: !361, line: 441, type: !154, align: 8)
!457 = distinct !DILexicalBlock(scope: !455, file: !361, line: 441, column: 8)
!458 = !DILocalVariable(name: "y", scope: !459, file: !361, line: 442, type: !154, align: 8)
!459 = distinct !DILexicalBlock(scope: !457, file: !361, line: 442, column: 8)
!460 = !DILocalVariable(name: "t", scope: !461, file: !361, line: 454, type: !462, align: 8)
!461 = distinct !DILexicalBlock(scope: !433, file: !361, line: 454, column: 8)
!462 = !DICompositeType(tag: DW_TAG_union_type, name: "MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>", scope: !437, file: !2, size: 256, align: 64, elements: !463, templateParams: !475, identifier: "4ea4d0764646b776a5deab80642d9c53")
!463 = !{!464, !465}
!464 = !DIDerivedType(tag: DW_TAG_member, name: "uninit", scope: !462, file: !2, baseType: !51, align: 8)
!465 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !462, file: !2, baseType: !466, size: 256, align: 64)
!466 = !DICompositeType(tag: DW_TAG_structure_type, name: "ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>", scope: !442, file: !2, size: 256, align: 64, elements: !467, templateParams: !475, identifier: "53caccbae004a743b8419c541bc81202")
!467 = !{!468}
!468 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !466, file: !2, baseType: !469, size: 256, align: 64)
!469 = !DICompositeType(tag: DW_TAG_structure_type, name: "UnalignedBlock", scope: !446, file: !2, size: 256, align: 64, elements: !470, templateParams: !4, identifier: "95a197467d7fc4ee2a12b6ac55fa483b")
!470 = !{!471, !472, !473, !474}
!471 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !469, file: !2, baseType: !214, size: 64, align: 64)
!472 = !DIDerivedType(tag: DW_TAG_member, name: "__1", scope: !469, file: !2, baseType: !214, size: 64, align: 64, offset: 64)
!473 = !DIDerivedType(tag: DW_TAG_member, name: "__2", scope: !469, file: !2, baseType: !214, size: 64, align: 64, offset: 128)
!474 = !DIDerivedType(tag: DW_TAG_member, name: "__3", scope: !469, file: !2, baseType: !214, size: 64, align: 64, offset: 192)
!475 = !{!476}
!476 = !DITemplateTypeParameter(name: "T", type: !469)
!477 = !DILocalVariable(name: "rem", scope: !478, file: !361, line: 455, type: !109, align: 8)
!478 = distinct !DILexicalBlock(scope: !461, file: !361, line: 455, column: 8)
!479 = !DILocalVariable(name: "t", scope: !480, file: !361, line: 457, type: !154, align: 8)
!480 = distinct !DILexicalBlock(scope: !478, file: !361, line: 457, column: 8)
!481 = !DILocalVariable(name: "x", scope: !482, file: !361, line: 458, type: !154, align: 8)
!482 = distinct !DILexicalBlock(scope: !480, file: !361, line: 458, column: 8)
!483 = !DILocalVariable(name: "y", scope: !484, file: !361, line: 459, type: !154, align: 8)
!484 = distinct !DILexicalBlock(scope: !482, file: !361, line: 459, column: 8)
!485 = !DILocalVariable(name: "self", arg: 1, scope: !486, file: !487, line: 148, type: !492)
!486 = distinct !DISubprogram(name: "deref_mut<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>", linkageName: "_ZN94_$LT$core..mem..manually_drop..ManuallyDrop$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$9deref_mut17h7aec73cc0580dc60E", scope: !488, file: !487, line: 148, type: !489, scopeLine: 148, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !475, retainedNodes: !493)
!487 = !DIFile(filename: "/rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd/src/libcore/mem/manually_drop.rs", directory: "")
!488 = !DINamespace(name: "{{impl}}", scope: !442)
!489 = !DISubroutineType(types: !490)
!490 = !{!491, !492}
!491 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::ptr::swap_nonoverlapping_bytes::UnalignedBlock", baseType: !469, size: 64, align: 64, dwarfAddressSpace: 0)
!492 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::mem::manually_drop::ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>", baseType: !466, size: 64, align: 64, dwarfAddressSpace: 0)
!493 = !{!485}
!494 = !DILocation(line: 148, column: 17, scope: !486, inlinedAt: !495)
!495 = distinct !DILocation(line: 448, column: 22, scope: !496, inlinedAt: !504)
!496 = distinct !DISubprogram(name: "as_mut_ptr<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>", linkageName: "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$10as_mut_ptr17h84dccbb4291e2f83E", scope: !462, file: !497, line: 447, type: !498, scopeLine: 447, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !475, retainedNodes: !502)
!497 = !DIFile(filename: "/rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd/src/libcore/mem/maybe_uninit.rs", directory: "")
!498 = !DISubroutineType(types: !499)
!499 = !{!500, !501}
!500 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*mut core::ptr::swap_nonoverlapping_bytes::UnalignedBlock", baseType: !469, size: 64, align: 64, dwarfAddressSpace: 0)
!501 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>", baseType: !462, size: 64, align: 64, dwarfAddressSpace: 0)
!502 = !{!503}
!503 = !DILocalVariable(name: "self", arg: 1, scope: !496, file: !497, line: 447, type: !501)
!504 = distinct !DILocation(line: 457, column: 16, scope: !478)
!505 = !DILocation(line: 447, column: 22, scope: !496, inlinedAt: !504)
!506 = !DILocalVariable(name: "self", arg: 1, scope: !507, file: !487, line: 148, type: !511)
!507 = distinct !DISubprogram(name: "deref_mut<core::ptr::swap_nonoverlapping_bytes::Block>", linkageName: "_ZN94_$LT$core..mem..manually_drop..ManuallyDrop$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$9deref_mut17hbf398306117baa17E", scope: !488, file: !487, line: 148, type: !508, scopeLine: 148, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !452, retainedNodes: !512)
!508 = !DISubroutineType(types: !509)
!509 = !{!510, !511}
!510 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::ptr::swap_nonoverlapping_bytes::Block", baseType: !445, size: 64, align: 64, dwarfAddressSpace: 0)
!511 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::mem::manually_drop::ManuallyDrop<core::ptr::swap_nonoverlapping_bytes::Block>", baseType: !441, size: 64, align: 64, dwarfAddressSpace: 0)
!512 = !{!506}
!513 = !DILocation(line: 148, column: 17, scope: !507, inlinedAt: !514)
!514 = distinct !DILocation(line: 448, column: 22, scope: !515, inlinedAt: !522)
!515 = distinct !DISubprogram(name: "as_mut_ptr<core::ptr::swap_nonoverlapping_bytes::Block>", linkageName: "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$10as_mut_ptr17he90eb7a05a7e754dE", scope: !436, file: !497, line: 447, type: !516, scopeLine: 447, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !452, retainedNodes: !520)
!516 = !DISubroutineType(types: !517)
!517 = !{!518, !519}
!518 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "*mut core::ptr::swap_nonoverlapping_bytes::Block", baseType: !445, size: 64, align: 64, dwarfAddressSpace: 0)
!519 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::mem::maybe_uninit::MaybeUninit<core::ptr::swap_nonoverlapping_bytes::Block>", baseType: !436, size: 64, align: 64, dwarfAddressSpace: 0)
!520 = !{!521}
!521 = !DILocalVariable(name: "self", arg: 1, scope: !515, file: !497, line: 447, type: !519)
!522 = distinct !DILocation(line: 440, column: 16, scope: !435)
!523 = !DILocation(line: 447, column: 22, scope: !515, inlinedAt: !522)
!524 = !DILocation(line: 419, column: 36, scope: !423)
!525 = !DILocation(line: 419, column: 48, scope: !423)
!526 = !DILocation(line: 419, column: 60, scope: !423)
!527 = !DILocation(line: 435, column: 8, scope: !433)
!528 = !DILocation(line: 439, column: 12, scope: !435)
!529 = !DILocation(line: 454, column: 12, scope: !461)
!530 = !DILocation(line: 277, column: 4, scope: !531, inlinedAt: !532)
!531 = distinct !DISubprogram(name: "size_of<core::ptr::swap_nonoverlapping_bytes::Block>", linkageName: "_ZN4core3mem7size_of17h85e1a59fe1e3b2c8E", scope: !314, file: !313, line: 276, type: !392, scopeLine: 276, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !452, retainedNodes: !4)
!532 = distinct !DILocation(line: 430, column: 21, scope: !423)
!533 = !DILocation(line: 430, column: 21, scope: !423)
!534 = !DILocation(line: 430, column: 8, scope: !431)
!535 = !DILocation(line: 435, column: 16, scope: !431)
!536 = !DILocation(line: 436, column: 4, scope: !433)
!537 = !DILocation(line: 436, column: 10, scope: !433)
!538 = !DILocation(line: 452, column: 7, scope: !433)
!539 = !DILocation(line: 452, column: 4, scope: !433)
!540 = !DILocation(line: 272, column: 8, scope: !541, inlinedAt: !544)
!541 = distinct !DISubprogram(name: "uninit<core::ptr::swap_nonoverlapping_bytes::Block>", linkageName: "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$6uninit17hf2f7f99c21aa0f8eE", scope: !436, file: !497, line: 271, type: !542, scopeLine: 271, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !452, retainedNodes: !4)
!542 = !DISubroutineType(types: !543)
!543 = !{!436}
!544 = distinct !DILocation(line: 439, column: 20, scope: !433)
!545 = !DILocation(line: 439, column: 20, scope: !433)
!546 = !DILocation(line: 440, column: 16, scope: !435)
!547 = !DILocation(line: 440, column: 12, scope: !455)
!548 = !DILocation(line: 441, column: 22, scope: !455)
!549 = !DILocation(line: 441, column: 16, scope: !455)
!550 = !DILocation(line: 441, column: 12, scope: !457)
!551 = !DILocation(line: 442, column: 22, scope: !457)
!552 = !DILocation(line: 442, column: 16, scope: !457)
!553 = !DILocation(line: 442, column: 12, scope: !459)
!554 = !DILocation(line: 446, column: 8, scope: !459)
!555 = !DILocation(line: 447, column: 8, scope: !459)
!556 = !DILocation(line: 448, column: 8, scope: !459)
!557 = !DILocation(line: 449, column: 8, scope: !459)
!558 = !DILocation(line: 272, column: 8, scope: !559, inlinedAt: !562)
!559 = distinct !DISubprogram(name: "uninit<core::ptr::swap_nonoverlapping_bytes::UnalignedBlock>", linkageName: "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$6uninit17hd01a2bcd5224cab0E", scope: !462, file: !497, line: 271, type: !560, scopeLine: 271, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !475, retainedNodes: !4)
!560 = !DISubroutineType(types: !561)
!561 = !{!462}
!562 = distinct !DILocation(line: 454, column: 20, scope: !433)
!563 = !DILocation(line: 454, column: 20, scope: !433)
!564 = !DILocation(line: 455, column: 24, scope: !461)
!565 = !DILocation(line: 455, column: 18, scope: !461)
!566 = !DILocation(line: 455, column: 12, scope: !478)
!567 = !DILocation(line: 448, column: 23, scope: !496, inlinedAt: !504)
!568 = !DILocation(line: 149, column: 8, scope: !486, inlinedAt: !495)
!569 = !DILocation(line: 457, column: 16, scope: !478)
!570 = !DILocation(line: 457, column: 12, scope: !480)
!571 = !DILocation(line: 458, column: 22, scope: !480)
!572 = !DILocation(line: 458, column: 16, scope: !480)
!573 = !DILocation(line: 458, column: 12, scope: !482)
!574 = !DILocation(line: 459, column: 22, scope: !482)
!575 = !DILocation(line: 459, column: 16, scope: !482)
!576 = !DILocation(line: 459, column: 12, scope: !484)
!577 = !DILocation(line: 461, column: 8, scope: !484)
!578 = !DILocation(line: 462, column: 8, scope: !484)
!579 = !DILocation(line: 463, column: 8, scope: !484)
!580 = !DILocation(line: 465, column: 1, scope: !423)
!581 = distinct !DISubprogram(name: "read<i32>", linkageName: "_ZN4core3ptr4read17hb8b617b170f7f5dcE", scope: !362, file: !361, line: 625, type: !582, scopeLine: 625, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !100, retainedNodes: !584)
!582 = !DISubroutineType(types: !583)
!583 = !{!62, !140}
!584 = !{!585, !586}
!585 = !DILocalVariable(name: "src", arg: 1, scope: !581, file: !361, line: 625, type: !140)
!586 = !DILocalVariable(name: "tmp", scope: !587, file: !361, line: 627, type: !588, align: 4)
!587 = distinct !DILexicalBlock(scope: !581, file: !361, line: 627, column: 4)
!588 = !DICompositeType(tag: DW_TAG_union_type, name: "MaybeUninit<i32>", scope: !437, file: !2, size: 32, align: 32, elements: !589, templateParams: !100, identifier: "ff2394c37c82a83afd66a7462da7b01a")
!589 = !{!590, !591}
!590 = !DIDerivedType(tag: DW_TAG_member, name: "uninit", scope: !588, file: !2, baseType: !51, align: 8)
!591 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !588, file: !2, baseType: !592, size: 32, align: 32)
!592 = !DICompositeType(tag: DW_TAG_structure_type, name: "ManuallyDrop<i32>", scope: !442, file: !2, size: 32, align: 32, elements: !593, templateParams: !100, identifier: "dddbbe81059f8503e3050e41655a1f99")
!593 = !{!594}
!594 = !DIDerivedType(tag: DW_TAG_member, name: "value", scope: !592, file: !2, baseType: !62, size: 32, align: 32)
!595 = !DILocalVariable(name: "self", arg: 1, scope: !596, file: !487, line: 148, type: !599)
!596 = distinct !DISubprogram(name: "deref_mut<i32>", linkageName: "_ZN94_$LT$core..mem..manually_drop..ManuallyDrop$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$9deref_mut17h1e9a56893cb4bcd7E", scope: !488, file: !487, line: 148, type: !597, scopeLine: 148, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !100, retainedNodes: !600)
!597 = !DISubroutineType(types: !598)
!598 = !{!317, !599}
!599 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::mem::manually_drop::ManuallyDrop<i32>", baseType: !592, size: 64, align: 64, dwarfAddressSpace: 0)
!600 = !{!595}
!601 = !DILocation(line: 148, column: 17, scope: !596, inlinedAt: !602)
!602 = distinct !DILocation(line: 448, column: 22, scope: !603, inlinedAt: !609)
!603 = distinct !DISubprogram(name: "as_mut_ptr<i32>", linkageName: "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$10as_mut_ptr17h5aab5a7611295353E", scope: !588, file: !497, line: 447, type: !604, scopeLine: 447, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !100, retainedNodes: !607)
!604 = !DISubroutineType(types: !605)
!605 = !{!141, !606}
!606 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::mem::maybe_uninit::MaybeUninit<i32>", baseType: !588, size: 64, align: 64, dwarfAddressSpace: 0)
!607 = !{!608}
!608 = !DILocalVariable(name: "self", arg: 1, scope: !603, file: !497, line: 447, type: !606)
!609 = distinct !DILocation(line: 628, column: 29, scope: !587)
!610 = !DILocation(line: 447, column: 22, scope: !603, inlinedAt: !609)
!611 = !DILocalVariable(name: "slot", arg: 1, scope: !612, file: !487, line: 86, type: !592)
!612 = distinct !DISubprogram(name: "into_inner<i32>", linkageName: "_ZN4core3mem13manually_drop21ManuallyDrop$LT$T$GT$10into_inner17had87178ba9cf810bE", scope: !592, file: !487, line: 86, type: !613, scopeLine: 86, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !100, retainedNodes: !615)
!613 = !DISubroutineType(types: !614)
!614 = !{!62, !592}
!615 = !{!611}
!616 = !DILocation(line: 86, column: 28, scope: !612, inlinedAt: !617)
!617 = distinct !DILocation(line: 499, column: 8, scope: !618, inlinedAt: !623)
!618 = distinct !DISubprogram(name: "assume_init<i32>", linkageName: "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$11assume_init17h3508ec54a6ed97cbE", scope: !588, file: !497, line: 497, type: !619, scopeLine: 497, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !100, retainedNodes: !621)
!619 = !DISubroutineType(types: !620)
!620 = !{!62, !588}
!621 = !{!622}
!622 = !DILocalVariable(name: "self", arg: 1, scope: !618, file: !497, line: 497, type: !588)
!623 = distinct !DILocation(line: 629, column: 4, scope: !587)
!624 = !DILocation(line: 497, column: 30, scope: !618, inlinedAt: !623)
!625 = !DILocation(line: 625, column: 22, scope: !581)
!626 = !DILocation(line: 627, column: 8, scope: !587)
!627 = !DILocation(line: 272, column: 8, scope: !628, inlinedAt: !631)
!628 = distinct !DISubprogram(name: "uninit<i32>", linkageName: "_ZN4core3mem12maybe_uninit20MaybeUninit$LT$T$GT$6uninit17hb704266d1b4b1845E", scope: !588, file: !497, line: 271, type: !629, scopeLine: 271, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !100, retainedNodes: !4)
!629 = !DISubroutineType(types: !630)
!630 = !{!588}
!631 = distinct !DILocation(line: 627, column: 18, scope: !581)
!632 = !DILocation(line: 273, column: 5, scope: !628, inlinedAt: !631)
!633 = !DILocation(line: 627, column: 18, scope: !581)
!634 = !DILocation(line: 628, column: 29, scope: !587)
!635 = !DILocation(line: 628, column: 4, scope: !587)
!636 = !DILocation(line: 629, column: 4, scope: !587)
!637 = !DILocation(line: 630, column: 1, scope: !581)
!638 = distinct !DISubprogram(name: "write<i32>", linkageName: "_ZN4core3ptr5write17hfd67ddf85252221fE", scope: !362, file: !361, line: 812, type: !639, scopeLine: 812, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !100, retainedNodes: !641)
!639 = !DISubroutineType(types: !640)
!640 = !{null, !141, !62}
!641 = !{!642, !643}
!642 = !DILocalVariable(name: "dst", arg: 1, scope: !638, file: !361, line: 812, type: !141)
!643 = !DILocalVariable(name: "src", arg: 2, scope: !638, file: !361, line: 812, type: !62)
!644 = !DILocation(line: 812, column: 23, scope: !638)
!645 = !DILocation(line: 812, column: 36, scope: !638)
!646 = !DILocation(line: 816, column: 41, scope: !638)
!647 = !DILocation(line: 817, column: 1, scope: !638)
!648 = distinct !DISubprogram(name: "add<u8>", linkageName: "_ZN4core3ptr7mut_ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$3add17h5dbe540d304e464eE", scope: !650, file: !649, line: 441, type: !652, scopeLine: 441, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !159, retainedNodes: !654)
!649 = !DIFile(filename: "/rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd/src/libcore/ptr/mut_ptr.rs", directory: "")
!650 = !DINamespace(name: "{{impl}}", scope: !651)
!651 = !DINamespace(name: "mut_ptr", scope: !362)
!652 = !DISubroutineType(types: !653)
!653 = !{!154, !154, !109}
!654 = !{!655, !656}
!655 = !DILocalVariable(name: "self", arg: 1, scope: !648, file: !649, line: 441, type: !154)
!656 = !DILocalVariable(name: "count", arg: 2, scope: !648, file: !649, line: 441, type: !109)
!657 = !DILocation(line: 441, column: 22, scope: !648)
!658 = !DILocation(line: 441, column: 28, scope: !648)
!659 = !DILocation(line: 445, column: 8, scope: !648)
!660 = !DILocation(line: 446, column: 5, scope: !648)
!661 = distinct !DISubprogram(name: "offset<u8>", linkageName: "_ZN4core3ptr7mut_ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$6offset17h850232ccdf5f4362E", scope: !650, file: !649, line: 150, type: !662, scopeLine: 150, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !159, retainedNodes: !664)
!662 = !DISubroutineType(types: !663)
!663 = !{!154, !154, !42}
!664 = !{!665, !666}
!665 = !DILocalVariable(name: "self", arg: 1, scope: !661, file: !649, line: 150, type: !154)
!666 = !DILocalVariable(name: "count", arg: 2, scope: !661, file: !649, line: 150, type: !42)
!667 = !DILocation(line: 150, column: 25, scope: !661)
!668 = !DILocation(line: 150, column: 31, scope: !661)
!669 = !DILocation(line: 154, column: 8, scope: !661)
!670 = !DILocation(line: 155, column: 5, scope: !661)
!671 = distinct !DISubprogram(name: "next<i32>", linkageName: "_ZN4core4iter5range101_$LT$impl$u20$core..iter..traits..iterator..Iterator$u20$for$u20$core..ops..range..Range$LT$A$GT$$GT$4next17h2525abc134e599f1E", scope: !88, file: !87, line: 211, type: !672, scopeLine: 211, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !686, retainedNodes: !682)
!672 = !DISubroutineType(types: !673)
!673 = !{!93, !674}
!674 = !DIDerivedType(tag: DW_TAG_pointer_type, name: "&mut core::ops::range::Range<i32>", baseType: !675, size: 64, align: 64, dwarfAddressSpace: 0)
!675 = !DICompositeType(tag: DW_TAG_structure_type, name: "Range<i32>", scope: !676, file: !2, size: 64, align: 32, elements: !677, templateParams: !680, identifier: "a776507bd45d149d8300f1885c979329")
!676 = !DINamespace(name: "range", scope: !342)
!677 = !{!678, !679}
!678 = !DIDerivedType(tag: DW_TAG_member, name: "start", scope: !675, file: !2, baseType: !62, size: 32, align: 32)
!679 = !DIDerivedType(tag: DW_TAG_member, name: "end", scope: !675, file: !2, baseType: !62, size: 32, align: 32, offset: 32)
!680 = !{!681}
!681 = !DITemplateTypeParameter(name: "Idx", type: !62)
!682 = !{!683, !684}
!683 = !DILocalVariable(name: "self", arg: 1, scope: !671, file: !87, line: 211, type: !674)
!684 = !DILocalVariable(name: "n", scope: !685, file: !87, line: 217, type: !62, align: 4)
!685 = distinct !DILexicalBlock(scope: !671, file: !87, line: 217, column: 57)
!686 = !{!687}
!687 = !DITemplateTypeParameter(name: "A", type: !62)
!688 = !DILocation(line: 211, column: 12, scope: !671)
!689 = !DILocation(line: 217, column: 24, scope: !685)
!690 = !DILocation(line: 212, column: 11, scope: !671)
!691 = !DILocation(line: 212, column: 24, scope: !671)
!692 = !DILocation(line: 212, column: 8, scope: !671)
!693 = !DILocation(line: 224, column: 12, scope: !671)
!694 = !DILocation(line: 217, column: 33, scope: !671)
!695 = !DILocation(line: 217, column: 19, scope: !671)
!696 = !DILocation(line: 221, column: 16, scope: !671)
!697 = !DILocation(line: 217, column: 12, scope: !671)
!698 = !DILocation(line: 217, column: 24, scope: !671)
!699 = !DILocation(line: 218, column: 34, scope: !685)
!700 = !DILocation(line: 218, column: 16, scope: !685)
!701 = !DILocation(line: 219, column: 21, scope: !685)
!702 = !DILocation(line: 219, column: 16, scope: !685)
!703 = !DILocation(line: 223, column: 8, scope: !671)
!704 = !DILocation(line: 211, column: 4, scope: !671)
!705 = !DILocation(line: 220, column: 12, scope: !671)
!706 = !DILocation(line: 226, column: 5, scope: !671)
!707 = distinct !DISubprogram(name: "try_from", linkageName: "_ZN4core7convert3num18ptr_try_from_impls69_$LT$impl$u20$core..convert..TryFrom$LT$usize$GT$$u20$for$u20$u32$GT$8try_from17h54cce386fc926767E", scope: !709, file: !708, line: 219, type: !713, scopeLine: 219, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !4, retainedNodes: !734)
!708 = !DIFile(filename: "/rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd/src/libcore/convert/num.rs", directory: "")
!709 = !DINamespace(name: "{{impl}}", scope: !710)
!710 = !DINamespace(name: "ptr_try_from_impls", scope: !711)
!711 = !DINamespace(name: "num", scope: !712)
!712 = !DINamespace(name: "convert", scope: !23)
!713 = !DISubroutineType(types: !714)
!714 = !{!715, !109}
!715 = !DICompositeType(tag: DW_TAG_structure_type, name: "Result<u32, core::num::TryFromIntError>", scope: !22, file: !2, size: 64, align: 32, elements: !716, identifier: "70c0a5217132ee1dc9abe22e4183884a")
!716 = !{!717}
!717 = !DICompositeType(tag: DW_TAG_variant_part, scope: !22, file: !2, size: 64, align: 32, elements: !718, templateParams: !723, identifier: "70c0a5217132ee1dc9abe22e4183884a_variant_part", discriminator: !733)
!718 = !{!719, !729}
!719 = !DIDerivedType(tag: DW_TAG_member, name: "Ok", scope: !717, file: !2, baseType: !720, size: 64, align: 32, extraData: i64 0)
!720 = !DICompositeType(tag: DW_TAG_structure_type, name: "Ok", scope: !715, file: !2, size: 64, align: 32, elements: !721, templateParams: !723, identifier: "70c0a5217132ee1dc9abe22e4183884a::Ok")
!721 = !{!722}
!722 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !720, file: !2, baseType: !107, size: 32, align: 32, offset: 32)
!723 = !{!724, !725}
!724 = !DITemplateTypeParameter(name: "T", type: !107)
!725 = !DITemplateTypeParameter(name: "E", type: !726)
!726 = !DICompositeType(tag: DW_TAG_structure_type, name: "TryFromIntError", scope: !328, file: !2, align: 8, elements: !727, templateParams: !4, identifier: "7b57dd6dbd42d1ba488c3d1214235706")
!727 = !{!728}
!728 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !726, file: !2, baseType: !51, align: 8)
!729 = !DIDerivedType(tag: DW_TAG_member, name: "Err", scope: !717, file: !2, baseType: !730, size: 64, align: 32, extraData: i64 1)
!730 = !DICompositeType(tag: DW_TAG_structure_type, name: "Err", scope: !715, file: !2, size: 64, align: 32, elements: !731, templateParams: !723, identifier: "70c0a5217132ee1dc9abe22e4183884a::Err")
!731 = !{!732}
!732 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !730, file: !2, baseType: !726, align: 8, offset: 32)
!733 = !DIDerivedType(tag: DW_TAG_member, scope: !22, file: !2, baseType: !107, size: 32, align: 32, flags: DIFlagArtificial)
!734 = !{!735}
!735 = !DILocalVariable(name: "u", arg: 1, scope: !707, file: !708, line: 219, type: !109)
!736 = !DILocation(line: 219, column: 24, scope: !707)
!737 = !DILocation(line: 220, column: 24, scope: !707)
!738 = !DILocation(line: 220, column: 23, scope: !707)
!739 = !DILocation(line: 220, column: 19, scope: !707)
!740 = !DILocation(line: 220, column: 16, scope: !707)
!741 = !DILocation(line: 223, column: 23, scope: !707)
!742 = !DILocation(line: 223, column: 20, scope: !707)
!743 = !DILocation(line: 221, column: 20, scope: !707)
!744 = !DILocation(line: 225, column: 13, scope: !707)
!745 = distinct !DISubprogram(name: "report", linkageName: "_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17hb299261025355cbfE", scope: !747, file: !746, line: 1653, type: !749, scopeLine: 1653, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !4, retainedNodes: !751)
!746 = !DIFile(filename: "/rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd/src/libstd/process.rs", directory: "")
!747 = !DINamespace(name: "{{impl}}", scope: !748)
!748 = !DINamespace(name: "process", scope: !8)
!749 = !DISubroutineType(types: !750)
!750 = !{!62, !51}
!751 = !{!752}
!752 = !DILocalVariable(name: "self", arg: 1, scope: !745, file: !746, line: 1653, type: !51)
!753 = !DILocation(line: 1653, column: 14, scope: !745)
!754 = !DILocation(line: 1654, column: 8, scope: !745)
!755 = !DILocation(line: 1655, column: 5, scope: !745)
!756 = distinct !DISubprogram(name: "into_iter<core::ops::range::Range<i32>>", linkageName: "_ZN63_$LT$I$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h7c746f09ad0c25f9E", scope: !758, file: !757, line: 247, type: !761, scopeLine: 247, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !765, retainedNodes: !763)
!757 = !DIFile(filename: "/rustc/8d69840ab92ea7f4d323420088dd8c9775f180cd/src/libcore/iter/traits/collect.rs", directory: "")
!758 = !DINamespace(name: "{{impl}}", scope: !759)
!759 = !DINamespace(name: "collect", scope: !760)
!760 = !DINamespace(name: "traits", scope: !90)
!761 = !DISubroutineType(types: !762)
!762 = !{!675, !675}
!763 = !{!764}
!764 = !DILocalVariable(name: "self", arg: 1, scope: !756, file: !757, line: 247, type: !675)
!765 = !{!766}
!766 = !DITemplateTypeParameter(name: "I", type: !675)
!767 = !DILocation(line: 247, column: 17, scope: !756)
!768 = !DILocation(line: 249, column: 5, scope: !756)
!769 = distinct !DISubprogram(name: "report", linkageName: "_ZN68_$LT$std..process..ExitCode$u20$as$u20$std..process..Termination$GT$6report17he7157c58223cf1afE", scope: !747, file: !746, line: 1687, type: !770, scopeLine: 1687, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition, unit: !18, templateParams: !4, retainedNodes: !775)
!770 = !DISubroutineType(types: !771)
!771 = !{!62, !772}
!772 = !DICompositeType(tag: DW_TAG_structure_type, name: "ExitCode", scope: !748, file: !2, size: 8, align: 8, elements: !773, templateParams: !4, identifier: "76748f88d00b8e2a444a278f441007c9")
!773 = !{!774}
!774 = !DIDerivedType(tag: DW_TAG_member, name: "__0", scope: !772, file: !2, baseType: !71, size: 8, align: 8)
!775 = !{!776}
!776 = !DILocalVariable(name: "self", arg: 1, scope: !769, file: !746, line: 1687, type: !772)
!777 = !DILocation(line: 1687, column: 14, scope: !769)
!778 = !DILocation(line: 1688, column: 8, scope: !769)
!779 = !DILocation(line: 1689, column: 5, scope: !769)
!780 = distinct !DISubprogram(name: "main", linkageName: "_ZN10playground4main17h4a4fe2905f844b5dE", scope: !781, file: !19, line: 1, type: !12, scopeLine: 1, flags: DIFlagPrototyped, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagMainSubprogram, unit: !18, templateParams: !4, retainedNodes: !782)
!781 = !DINamespace(name: "playground", scope: null)
!782 = !{!783, !785, !787, !789, !791}
!783 = !DILocalVariable(name: "iter", scope: !784, file: !19, line: 2, type: !675, align: 4)
!784 = distinct !DILexicalBlock(scope: !780, file: !19, line: 2, column: 4)
!785 = !DILocalVariable(name: "__next", scope: !786, file: !19, line: 2, type: !62, align: 4)
!786 = distinct !DILexicalBlock(scope: !784, file: !19, line: 2, column: 13)
!787 = !DILocalVariable(name: "val", scope: !788, file: !19, line: 2, type: !62, align: 4)
!788 = distinct !DILexicalBlock(scope: !786, file: !19, line: 2, column: 8)
!789 = !DILocalVariable(name: "i", scope: !790, file: !19, line: 2, type: !62, align: 4)
!790 = distinct !DILexicalBlock(scope: !786, file: !19, line: 2, column: 13)
!791 = !DILocalVariable(name: "arg0", scope: !792, file: !19, line: 3, type: !108, align: 8)
!792 = !DILexicalBlockFile(scope: !793, file: !19, discriminator: 0)
!793 = distinct !DILexicalBlock(scope: !790, file: !794, line: 2, column: 28)
!794 = !DIFile(filename: "<::std::macros::println macros>", directory: "/playground")
!795 = !DILocation(line: 2, column: 13, scope: !784)
!796 = !DILocation(line: 2, column: 8, scope: !790)
!797 = !DILocation(line: 2, column: 13, scope: !780)
!798 = !DILocation(line: 2, column: 4, scope: !784)
!799 = !DILocation(line: 2, column: 13, scope: !786)
!800 = !DILocation(line: 2, column: 8, scope: !786)
!801 = !DILocation(line: 5, column: 1, scope: !802)
!802 = !DILexicalBlockFile(scope: !780, file: !19, discriminator: 0)
!803 = !DILocation(line: 2, column: 8, scope: !788)
!804 = !DILocation(line: 3, column: 17, scope: !790)
!805 = !DILocation(line: 3, column: 8, scope: !790)
!806 = !DILocation(line: 3, column: 8, scope: !792)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment