; ModuleID = 'probe1.49aa193e-cgu.0' source_filename = "probe1.49aa193e-cgu.0" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" %"alloc::string::String" = type { %"alloc::vec::Vec" } %"alloc::vec::Vec" = type { { i8*, i64 }, i64 } %"core::fmt::Arguments" = type { { [0 x { [0 x i8]*, i64 }]*, i64 }, { i64*, i64 }, { [0 x { i8*, i64* }]*, i64 } } %"core::option::Option<(core::ptr::non_null::NonNull, core::alloc::layout::Layout)>" = type { {}*, [2 x i64] } %"core::option::Option<(core::ptr::non_null::NonNull, core::alloc::layout::Layout)>::Some" = type { { i8*, { i64, i64 } } } %"alloc::alloc::Global" = type {} %"core::ptr::metadata::PtrRepr<[u8]>" = type { [2 x i64] } %"core::fmt::Formatter" = type { { i64, i64 }, { i64, i64 }, { {}*, [3 x i64]* }, i32, i32, i8, [7 x i8] } %"core::fmt::Opaque" = type {} %"core::panic::location::Location" = type { { [0 x i8]*, i64 }, i32, i32 } %"unwind::libunwind::_Unwind_Exception" = type { i64, void (i32, %"unwind::libunwind::_Unwind_Exception"*)*, [6 x i64] } %"unwind::libunwind::_Unwind_Context" = type { [0 x i8] } @alloc10 = private unnamed_addr constant <{ [0 x i8] }> zeroinitializer, align 8 @alloc3 = private unnamed_addr constant <{ i8*, [8 x i8] }> <{ i8* getelementptr inbounds (<{ [0 x i8] }>, <{ [0 x i8] }>* @alloc10, i32 0, i32 0, i32 0), [8 x i8] zeroinitializer }>, align 8 @alloc5 = private unnamed_addr constant <{ [8 x i8] }> zeroinitializer, align 8 @alloc7 = private unnamed_addr constant <{ [12 x i8] }> <{ [12 x i8] c"invalid args" }>, align 1 @alloc8 = private unnamed_addr constant <{ i8*, [8 x i8] }> <{ i8* getelementptr inbounds (<{ [12 x i8] }>, <{ [12 x i8] }>* @alloc7, i32 0, i32 0, i32 0), [8 x i8] c"\0C\00\00\00\00\00\00\00" }>, align 8 @alloc28 = private unnamed_addr constant <{ [75 x i8] }> <{ [75 x i8] c"/rustc/7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c/library/core/src/fmt/mod.rs" }>, align 1 @alloc29 = private unnamed_addr constant <{ i8*, [16 x i8] }> <{ i8* getelementptr inbounds (<{ [75 x i8] }>, <{ [75 x i8] }>* @alloc28, i32 0, i32 0, i32 0), [16 x i8] c"K\00\00\00\00\00\00\00\81\01\00\00\0D\00\00\00" }>, align 8 ; core::ptr::drop_in_place ; Function Attrs: nonlazybind uwtable define void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he7c0ec0b771eba18E"(%"alloc::string::String"* %_1) unnamed_addr #0 { start: %0 = bitcast %"alloc::string::String"* %_1 to %"alloc::vec::Vec"* ; call core::ptr::drop_in_place> call void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hd5791445be336d62E"(%"alloc::vec::Vec"* %0) br label %bb1 bb1: ; preds = %start ret void } ; core::ptr::drop_in_place> ; Function Attrs: nonlazybind uwtable define void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17hd5791445be336d62E"(%"alloc::vec::Vec"* %_1) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality { start: %0 = alloca { i8*, i32 }, align 8 ; invoke as core::ops::drop::Drop>::drop invoke void @"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd43910c9dbb2a10dE"(%"alloc::vec::Vec"* noundef align 8 dereferenceable(24) %_1) to label %bb4 unwind label %cleanup bb4: ; preds = %start %1 = bitcast %"alloc::vec::Vec"* %_1 to { i8*, i64 }* ; call core::ptr::drop_in_place> call void @"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17h4ca2a4d8568aa25bE"({ i8*, i64 }* %1) br label %bb2 bb3: ; preds = %cleanup %2 = bitcast %"alloc::vec::Vec"* %_1 to { i8*, i64 }* ; call core::ptr::drop_in_place> call void @"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17h4ca2a4d8568aa25bE"({ i8*, i64 }* %2) #6 br label %bb1 cleanup: ; preds = %start %3 = landingpad { i8*, i32 } cleanup %4 = extractvalue { i8*, i32 } %3, 0 %5 = extractvalue { i8*, i32 } %3, 1 %6 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %0, i32 0, i32 0 store i8* %4, i8** %6, align 8 %7 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %0, i32 0, i32 1 store i32 %5, i32* %7, align 8 br label %bb3 bb1: ; preds = %bb3 %8 = bitcast { i8*, i32 }* %0 to i8** %9 = load i8*, i8** %8, align 8 %10 = getelementptr inbounds { i8*, i32 }, { i8*, i32 }* %0, i32 0, i32 1 %11 = load i32, i32* %10, align 8 %12 = insertvalue { i8*, i32 } undef, i8* %9, 0 %13 = insertvalue { i8*, i32 } %12, i32 %11, 1 resume { i8*, i32 } %13 bb2: ; preds = %bb4 ret void } ; core::ptr::drop_in_place> ; Function Attrs: nonlazybind uwtable define void @"_ZN4core3ptr53drop_in_place$LT$alloc..raw_vec..RawVec$LT$u8$GT$$GT$17h4ca2a4d8568aa25bE"({ i8*, i64 }* %_1) unnamed_addr #0 { start: ; call as core::ops::drop::Drop>::drop call void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6032a867d8e708f4E"({ i8*, i64 }* noundef align 8 dereferenceable(16) %_1) br label %bb1 bb1: ; preds = %start ret void } ; probe1::probe ; Function Attrs: nonlazybind uwtable define void @_ZN6probe15probe17h88659a1cd765b415E() unnamed_addr #0 { start: %_10 = alloca [1 x { i8*, i64* }], align 8 %_3 = alloca %"core::fmt::Arguments", align 8 %res = alloca %"alloc::string::String", align 8 %_1 = alloca %"alloc::string::String", align 8 ; call core::fmt::ArgumentV1::new_lower_exp %0 = call { i8*, i64* } @_ZN4core3fmt10ArgumentV113new_lower_exp17h042822b93991e3adE(i64* noundef align 8 dereferenceable(8) bitcast (<{ [8 x i8] }>* @alloc5 to i64*)) %_11.0 = extractvalue { i8*, i64* } %0, 0 %_11.1 = extractvalue { i8*, i64* } %0, 1 br label %bb1 bb1: ; preds = %start %1 = bitcast [1 x { i8*, i64* }]* %_10 to { i8*, i64* }* %2 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %1, i32 0, i32 0 store i8* %_11.0, i8** %2, align 8 %3 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %1, i32 0, i32 1 store i64* %_11.1, i64** %3, align 8 %_7.0 = bitcast [1 x { i8*, i64* }]* %_10 to [0 x { i8*, i64* }]* ; call core::fmt::Arguments::new_v1 call void @_ZN4core3fmt9Arguments6new_v117h99eeafbdfca9bd9eE(%"core::fmt::Arguments"* noalias nocapture noundef sret(%"core::fmt::Arguments") dereferenceable(48) %_3, [0 x { [0 x i8]*, i64 }]* noundef nonnull align 8 bitcast (<{ i8*, [8 x i8] }>* @alloc3 to [0 x { [0 x i8]*, i64 }]*), i64 1, [0 x { i8*, i64* }]* noundef nonnull align 8 %_7.0, i64 1) br label %bb2 bb2: ; preds = %bb1 ; call alloc::fmt::format call void @_ZN5alloc3fmt6format17h4141264adb528c54E(%"alloc::string::String"* noalias nocapture noundef sret(%"alloc::string::String") dereferenceable(24) %res, %"core::fmt::Arguments"* noalias nocapture noundef dereferenceable(48) %_3) br label %bb3 bb3: ; preds = %bb2 %4 = bitcast %"alloc::string::String"* %_1 to i8* %5 = bitcast %"alloc::string::String"* %res to i8* call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %4, i8* align 8 %5, i64 24, i1 false) ; call core::ptr::drop_in_place call void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he7c0ec0b771eba18E"(%"alloc::string::String"* %_1) br label %bb4 bb4: ; preds = %bb3 ret void } ; alloc::raw_vec::RawVec::ptr ; Function Attrs: inlinehint nonlazybind uwtable define i8* @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$3ptr17he983e2961a636d31E"({ i8*, i64 }* noundef align 8 dereferenceable(16) %self) unnamed_addr #1 { start: %0 = bitcast { i8*, i64 }* %self to i8** %_2 = load i8*, i8** %0, align 8, !nonnull !2 ; call core::ptr::unique::Unique::as_ptr %1 = call i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ptr17h0f937f3d437bd21aE"(i8* nonnull %_2) br label %bb1 bb1: ; preds = %start ret i8* %1 } ; alloc::raw_vec::RawVec::current_memory ; Function Attrs: nonlazybind uwtable define void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hd0d6759410affc6fE"(%"core::option::Option<(core::ptr::non_null::NonNull, core::alloc::layout::Layout)>"* noalias nocapture noundef sret(%"core::option::Option<(core::ptr::non_null::NonNull, core::alloc::layout::Layout)>") dereferenceable(24) %0, { i8*, i64 }* noundef align 8 dereferenceable(16) %self) unnamed_addr #0 { start: %_13 = alloca { i8*, { i64, i64 } }, align 8 %_2 = alloca i8, align 1 br label %bb4 bb4: ; preds = %start %1 = icmp eq i64 1, 0 br i1 %1, label %bb1, label %bb2 bb1: ; preds = %bb4 store i8 1, i8* %_2, align 1 br label %bb3 bb2: ; preds = %bb4 %2 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 %_5 = load i64, i64* %2, align 8 %_4 = icmp eq i64 %_5, 0 %3 = zext i1 %_4 to i8 store i8 %3, i8* %_2, align 1 br label %bb3 bb3: ; preds = %bb1, %bb2 %4 = load i8, i8* %_2, align 1, !range !3 %5 = trunc i8 %4 to i1 br i1 %5, label %bb5, label %bb6 bb6: ; preds = %bb3 br label %bb7 bb5: ; preds = %bb3 %6 = bitcast %"core::option::Option<(core::ptr::non_null::NonNull, core::alloc::layout::Layout)>"* %0 to {}** store {}* null, {}** %6, align 8 br label %bb12 bb12: ; preds = %bb11, %bb5 ret void bb7: ; preds = %bb6 br label %bb8 bb8: ; preds = %bb7 %7 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 %_9 = load i64, i64* %7, align 8 %size = mul i64 1, %_9 ; call core::alloc::layout::Layout::from_size_align_unchecked %8 = call { i64, i64 } @_ZN4core5alloc6layout6Layout25from_size_align_unchecked17h0c8b8b1d0606c792E(i64 %size, i64 1) %layout.0 = extractvalue { i64, i64 } %8, 0 %layout.1 = extractvalue { i64, i64 } %8, 1 br label %bb9 bb9: ; preds = %bb8 %9 = bitcast { i8*, i64 }* %self to i8** %_16 = load i8*, i8** %9, align 8, !nonnull !2 ; call core::ptr::unique::Unique::cast %_15 = call nonnull i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$4cast17hcd57d05492947191E"(i8* nonnull %_16) br label %bb10 bb10: ; preds = %bb9 ; call >::into %_14 = call nonnull i8* @"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17hefc6668450c84db4E"(i8* nonnull %_15) br label %bb11 bb11: ; preds = %bb10 %10 = bitcast { i8*, { i64, i64 } }* %_13 to i8** store i8* %_14, i8** %10, align 8 %11 = getelementptr inbounds { i8*, { i64, i64 } }, { i8*, { i64, i64 } }* %_13, i32 0, i32 1 %12 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %11, i32 0, i32 0 store i64 %layout.0, i64* %12, align 8 %13 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %11, i32 0, i32 1 store i64 %layout.1, i64* %13, align 8 %14 = bitcast %"core::option::Option<(core::ptr::non_null::NonNull, core::alloc::layout::Layout)>"* %0 to %"core::option::Option<(core::ptr::non_null::NonNull, core::alloc::layout::Layout)>::Some"* %15 = bitcast %"core::option::Option<(core::ptr::non_null::NonNull, core::alloc::layout::Layout)>::Some"* %14 to { i8*, { i64, i64 } }* %16 = bitcast { i8*, { i64, i64 } }* %15 to i8* %17 = bitcast { i8*, { i64, i64 } }* %_13 to i8* call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %16, i8* align 8 %17, i64 24, i1 false) br label %bb12 } ; as core::ops::drop::Drop>::drop ; Function Attrs: nonlazybind uwtable define void @"_ZN77_$LT$alloc..raw_vec..RawVec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6032a867d8e708f4E"({ i8*, i64 }* noundef align 8 dereferenceable(16) %self) unnamed_addr #0 { start: %_2 = alloca %"core::option::Option<(core::ptr::non_null::NonNull, core::alloc::layout::Layout)>", align 8 ; call alloc::raw_vec::RawVec::current_memory call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17hd0d6759410affc6fE"(%"core::option::Option<(core::ptr::non_null::NonNull, core::alloc::layout::Layout)>"* noalias nocapture noundef sret(%"core::option::Option<(core::ptr::non_null::NonNull, core::alloc::layout::Layout)>") dereferenceable(24) %_2, { i8*, i64 }* noundef align 8 dereferenceable(16) %self) br label %bb1 bb1: ; preds = %start %0 = bitcast %"core::option::Option<(core::ptr::non_null::NonNull, core::alloc::layout::Layout)>"* %_2 to {}** %1 = load {}*, {}** %0, align 8 %2 = icmp eq {}* %1, null %_4 = select i1 %2, i64 0, i64 1 %3 = icmp eq i64 %_4, 1 br i1 %3, label %bb2, label %bb4 bb2: ; preds = %bb1 %4 = bitcast %"core::option::Option<(core::ptr::non_null::NonNull, core::alloc::layout::Layout)>"* %_2 to %"core::option::Option<(core::ptr::non_null::NonNull, core::alloc::layout::Layout)>::Some"* %5 = bitcast %"core::option::Option<(core::ptr::non_null::NonNull, core::alloc::layout::Layout)>::Some"* %4 to { i8*, { i64, i64 } }* %6 = bitcast { i8*, { i64, i64 } }* %5 to i8** %ptr = load i8*, i8** %6, align 8, !nonnull !2 %7 = bitcast %"core::option::Option<(core::ptr::non_null::NonNull, core::alloc::layout::Layout)>"* %_2 to %"core::option::Option<(core::ptr::non_null::NonNull, core::alloc::layout::Layout)>::Some"* %8 = bitcast %"core::option::Option<(core::ptr::non_null::NonNull, core::alloc::layout::Layout)>::Some"* %7 to { i8*, { i64, i64 } }* %9 = getelementptr inbounds { i8*, { i64, i64 } }, { i8*, { i64, i64 } }* %8, i32 0, i32 1 %10 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %9, i32 0, i32 0 %layout.0 = load i64, i64* %10, align 8 %11 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %9, i32 0, i32 1 %layout.1 = load i64, i64* %11, align 8, !range !4 %_7 = bitcast { i8*, i64 }* %self to %"alloc::alloc::Global"* ; call ::deallocate call void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h040112264cdb3e0aE"(%"alloc::alloc::Global"* noundef nonnull align 1 %_7, i8* nonnull %ptr, i64 %layout.0, i64 %layout.1) br label %bb3 bb4: ; preds = %bb3, %bb1 ret void bb3: ; preds = %bb2 br label %bb4 } ; alloc::alloc::dealloc ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN5alloc5alloc7dealloc17h4ebba9b12b65a00aE(i8* %ptr, i64 %0, i64 %1) unnamed_addr #1 { start: %layout = alloca { i64, i64 }, align 8 %2 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %layout, i32 0, i32 0 store i64 %0, i64* %2, align 8 %3 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %layout, i32 0, i32 1 store i64 %1, i64* %3, align 8 ; call core::alloc::layout::Layout::size %_4 = call i64 @_ZN4core5alloc6layout6Layout4size17hfb2138d70cbfcbfcE({ i64, i64 }* noundef align 8 dereferenceable(16) %layout) br label %bb1 bb1: ; preds = %start ; call core::alloc::layout::Layout::align %_6 = call i64 @_ZN4core5alloc6layout6Layout5align17h7741f2ecfd4af4ecE({ i64, i64 }* noundef align 8 dereferenceable(16) %layout) br label %bb2 bb2: ; preds = %bb1 call void @__rust_dealloc(i8* %ptr, i64 %_4, i64 %_6) #7 br label %bb3 bb3: ; preds = %bb2 ret void } ; ::deallocate ; Function Attrs: inlinehint nonlazybind uwtable define internal void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h040112264cdb3e0aE"(%"alloc::alloc::Global"* noundef nonnull align 1 %self, i8* nonnull %ptr, i64 %0, i64 %1) unnamed_addr #1 { start: %layout = alloca { i64, i64 }, align 8 %2 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %layout, i32 0, i32 0 store i64 %0, i64* %2, align 8 %3 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %layout, i32 0, i32 1 store i64 %1, i64* %3, align 8 ; call core::alloc::layout::Layout::size %_4 = call i64 @_ZN4core5alloc6layout6Layout4size17hfb2138d70cbfcbfcE({ i64, i64 }* noundef align 8 dereferenceable(16) %layout) br label %bb1 bb1: ; preds = %start %4 = icmp eq i64 %_4, 0 br i1 %4, label %bb5, label %bb2 bb5: ; preds = %bb1 br label %bb6 bb2: ; preds = %bb1 ; call core::ptr::non_null::NonNull::as_ptr %_6 = call i8* @"_ZN4core3ptr8non_null16NonNull$LT$T$GT$6as_ptr17h752dc894c13efd04E"(i8* nonnull %ptr) br label %bb3 bb3: ; preds = %bb2 %5 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %layout, i32 0, i32 0 %_8.0 = load i64, i64* %5, align 8 %6 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %layout, i32 0, i32 1 %_8.1 = load i64, i64* %6, align 8, !range !4 ; call alloc::alloc::dealloc call void @_ZN5alloc5alloc7dealloc17h4ebba9b12b65a00aE(i8* %_6, i64 %_8.0, i64 %_8.1) br label %bb4 bb4: ; preds = %bb3 br label %bb6 bb6: ; preds = %bb5, %bb4 ret void } ; core::ptr::metadata::from_raw_parts_mut ; Function Attrs: inlinehint nonlazybind uwtable define { [0 x i8]*, i64 } @_ZN4core3ptr8metadata18from_raw_parts_mut17hd909bd99f18a5853E({}* %data_address, i64 %metadata) unnamed_addr #1 { start: %_4 = alloca { i8*, i64 }, align 8 %_3 = alloca %"core::ptr::metadata::PtrRepr<[u8]>", align 8 %0 = bitcast { i8*, i64 }* %_4 to {}** store {}* %data_address, {}** %0, align 8 %1 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %_4, i32 0, i32 1 store i64 %metadata, i64* %1, align 8 %2 = bitcast %"core::ptr::metadata::PtrRepr<[u8]>"* %_3 to { i8*, i64 }* %3 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %_4, i32 0, i32 0 %4 = load i8*, i8** %3, align 8 %5 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %_4, i32 0, i32 1 %6 = load i64, i64* %5, align 8 %7 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %2, i32 0, i32 0 store i8* %4, i8** %7, align 8 %8 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %2, i32 0, i32 1 store i64 %6, i64* %8, align 8 %9 = bitcast %"core::ptr::metadata::PtrRepr<[u8]>"* %_3 to { [0 x i8]*, i64 }* %10 = getelementptr inbounds { [0 x i8]*, i64 }, { [0 x i8]*, i64 }* %9, i32 0, i32 0 %11 = load [0 x i8]*, [0 x i8]** %10, align 8 %12 = getelementptr inbounds { [0 x i8]*, i64 }, { [0 x i8]*, i64 }* %9, i32 0, i32 1 %13 = load i64, i64* %12, align 8 %14 = insertvalue { [0 x i8]*, i64 } undef, [0 x i8]* %11, 0 %15 = insertvalue { [0 x i8]*, i64 } %14, i64 %13, 1 ret { [0 x i8]*, i64 } %15 } ; core::ptr::non_null::NonNull::new_unchecked ; Function Attrs: inlinehint nonlazybind uwtable define nonnull i8* @"_ZN4core3ptr8non_null16NonNull$LT$T$GT$13new_unchecked17h3002bb9d16274afbE"(i8* %ptr) unnamed_addr #1 { start: %0 = alloca i8*, align 8 store i8* %ptr, i8** %0, align 8 %1 = load i8*, i8** %0, align 8, !nonnull !2 ret i8* %1 } ; core::ptr::non_null::NonNull::as_ptr ; Function Attrs: inlinehint nonlazybind uwtable define i8* @"_ZN4core3ptr8non_null16NonNull$LT$T$GT$6as_ptr17h752dc894c13efd04E"(i8* nonnull %self) unnamed_addr #1 { start: ret i8* %self } ; as core::convert::From>>::from ; Function Attrs: inlinehint nonlazybind uwtable define nonnull i8* @"_ZN119_$LT$core..ptr..non_null..NonNull$LT$T$GT$$u20$as$u20$core..convert..From$LT$core..ptr..unique..Unique$LT$T$GT$$GT$$GT$4from17h7ad682d0cd401239E"(i8* nonnull %unique) unnamed_addr #1 { start: ; call core::ptr::unique::Unique::as_ptr %_2 = call i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ptr17h0f937f3d437bd21aE"(i8* nonnull %unique) br label %bb1 bb1: ; preds = %start ; call core::ptr::non_null::NonNull::new_unchecked %0 = call nonnull i8* @"_ZN4core3ptr8non_null16NonNull$LT$T$GT$13new_unchecked17h3002bb9d16274afbE"(i8* %_2) br label %bb2 bb2: ; preds = %bb1 ret i8* %0 } ; core::ptr::unique::Unique::new_unchecked ; Function Attrs: inlinehint nonlazybind uwtable define nonnull i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$13new_unchecked17h1eba88c7a540e879E"(i8* %ptr) unnamed_addr #1 { start: %0 = alloca i8*, align 8 store i8* %ptr, i8** %0, align 8 %1 = load i8*, i8** %0, align 8, !nonnull !2 ret i8* %1 } ; core::ptr::unique::Unique::as_ptr ; Function Attrs: inlinehint nonlazybind uwtable define i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ptr17h0f937f3d437bd21aE"(i8* nonnull %self) unnamed_addr #1 { start: ret i8* %self } ; core::ptr::unique::Unique::cast ; Function Attrs: inlinehint nonlazybind uwtable define nonnull i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$4cast17hcd57d05492947191E"(i8* nonnull %self) unnamed_addr #1 { start: ; call core::ptr::unique::Unique::as_ptr %_3 = call i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$6as_ptr17h0f937f3d437bd21aE"(i8* nonnull %self) br label %bb1 bb1: ; preds = %start ; call core::ptr::unique::Unique::new_unchecked %0 = call nonnull i8* @"_ZN4core3ptr6unique15Unique$LT$T$GT$13new_unchecked17h1eba88c7a540e879E"(i8* %_3) br label %bb2 bb2: ; preds = %bb1 ret i8* %0 } ; core::ptr::mut_ptr::::is_null ; Function Attrs: inlinehint nonlazybind uwtable define noundef zeroext i1 @"_ZN4core3ptr7mut_ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17hda23e669c89ca927E"(i8* %self) unnamed_addr #1 { start: br label %bb1 bb1: ; preds = %start ; call core::ptr::mut_ptr::::guaranteed_eq %0 = call noundef zeroext i1 @"_ZN4core3ptr7mut_ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$13guaranteed_eq17hc1e0d6984a79c873E"(i8* %self, i8* null) br label %bb2 bb2: ; preds = %bb1 ret i1 %0 } ; core::ptr::mut_ptr::::guaranteed_eq ; Function Attrs: inlinehint nonlazybind uwtable define noundef zeroext i1 @"_ZN4core3ptr7mut_ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$13guaranteed_eq17hc1e0d6984a79c873E"(i8* %self, i8* %other) unnamed_addr #1 { start: %0 = alloca i8, align 1 %1 = icmp eq i8* %self, %other %2 = zext i1 %1 to i8 store i8 %2, i8* %0, align 1 %3 = load i8, i8* %0, align 1, !range !3 %4 = trunc i8 %3 to i1 br label %bb1 bb1: ; preds = %start ret i1 %4 } ; core::ptr::slice_from_raw_parts_mut ; Function Attrs: inlinehint nonlazybind uwtable define { [0 x i8]*, i64 } @_ZN4core3ptr24slice_from_raw_parts_mut17h9fd93bd0298a3d49E(i8* %data, i64 %len) unnamed_addr #1 { start: %0 = bitcast i8* %data to {}* br label %bb1 bb1: ; preds = %start ; call core::ptr::metadata::from_raw_parts_mut %1 = call { [0 x i8]*, i64 } @_ZN4core3ptr8metadata18from_raw_parts_mut17hd909bd99f18a5853E({}* %0, i64 %len) %2 = extractvalue { [0 x i8]*, i64 } %1, 0 %3 = extractvalue { [0 x i8]*, i64 } %1, 1 br label %bb2 bb2: ; preds = %bb1 %4 = insertvalue { [0 x i8]*, i64 } undef, [0 x i8]* %2, 0 %5 = insertvalue { [0 x i8]*, i64 } %4, i64 %3, 1 ret { [0 x i8]*, i64 } %5 } ; >::into ; Function Attrs: nonlazybind uwtable define nonnull i8* @"_ZN50_$LT$T$u20$as$u20$core..convert..Into$LT$U$GT$$GT$4into17hefc6668450c84db4E"(i8* nonnull %self) unnamed_addr #0 { start: ; call as core::convert::From>>::from %0 = call nonnull i8* @"_ZN119_$LT$core..ptr..non_null..NonNull$LT$T$GT$$u20$as$u20$core..convert..From$LT$core..ptr..unique..Unique$LT$T$GT$$GT$$GT$4from17h7ad682d0cd401239E"(i8* nonnull %self) br label %bb1 bb1: ; preds = %start ret i8* %0 } ; alloc::vec::Vec::as_mut_ptr ; Function Attrs: inlinehint nonlazybind uwtable define i8* @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$10as_mut_ptr17h74f8f655d2920920E"(%"alloc::vec::Vec"* noundef align 8 dereferenceable(24) %self) unnamed_addr #1 { start: %_2 = bitcast %"alloc::vec::Vec"* %self to { i8*, i64 }* ; call alloc::raw_vec::RawVec::ptr %ptr = call i8* @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$3ptr17he983e2961a636d31E"({ i8*, i64 }* noundef align 8 dereferenceable(16) %_2) br label %bb1 bb1: ; preds = %start ; call core::ptr::mut_ptr::::is_null %_5 = call noundef zeroext i1 @"_ZN4core3ptr7mut_ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17hda23e669c89ca927E"(i8* %ptr) br label %bb2 bb2: ; preds = %bb1 %_4 = xor i1 %_5, true call void @llvm.assume(i1 %_4) br label %bb3 bb3: ; preds = %bb2 ret i8* %ptr } ; as core::ops::drop::Drop>::drop ; Function Attrs: nonlazybind uwtable define void @"_ZN70_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd43910c9dbb2a10dE"(%"alloc::vec::Vec"* noundef align 8 dereferenceable(24) %self) unnamed_addr #0 { start: ; call alloc::vec::Vec::as_mut_ptr %_3 = call i8* @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$10as_mut_ptr17h74f8f655d2920920E"(%"alloc::vec::Vec"* noundef align 8 dereferenceable(24) %self) br label %bb1 bb1: ; preds = %start %0 = getelementptr inbounds %"alloc::vec::Vec", %"alloc::vec::Vec"* %self, i32 0, i32 1 %_5 = load i64, i64* %0, align 8 ; call core::ptr::slice_from_raw_parts_mut %1 = call { [0 x i8]*, i64 } @_ZN4core3ptr24slice_from_raw_parts_mut17h9fd93bd0298a3d49E(i8* %_3, i64 %_5) %_2.0 = extractvalue { [0 x i8]*, i64 } %1, 0 %_2.1 = extractvalue { [0 x i8]*, i64 } %1, 1 br label %bb2 bb2: ; preds = %bb1 br label %bb3 bb3: ; preds = %bb2 ret void } ; core::fmt::ArgumentV1::new ; Function Attrs: inlinehint nonlazybind uwtable define { i8*, i64* } @_ZN4core3fmt10ArgumentV13new17h8a003a007113b3e6E(i64* noundef align 8 dereferenceable(8) %x, i1 (i64*, %"core::fmt::Formatter"*)* nonnull %f) unnamed_addr #1 { start: %0 = alloca %"core::fmt::Opaque"*, align 8 %1 = alloca i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)*, align 8 %2 = alloca { i8*, i64* }, align 8 %3 = bitcast i1 (i64*, %"core::fmt::Formatter"*)* %f to i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)* store i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)* %3, i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)** %1, align 8 %_3 = load i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)*, i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)** %1, align 8, !nonnull !2 br label %bb1 bb1: ; preds = %start %4 = bitcast i64* %x to %"core::fmt::Opaque"* store %"core::fmt::Opaque"* %4, %"core::fmt::Opaque"** %0, align 8 %_5 = load %"core::fmt::Opaque"*, %"core::fmt::Opaque"** %0, align 8, !nonnull !2 br label %bb2 bb2: ; preds = %bb1 %5 = bitcast { i8*, i64* }* %2 to %"core::fmt::Opaque"** store %"core::fmt::Opaque"* %_5, %"core::fmt::Opaque"** %5, align 8 %6 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %2, i32 0, i32 1 %7 = bitcast i64** %6 to i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)** store i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)* %_3, i1 (%"core::fmt::Opaque"*, %"core::fmt::Formatter"*)** %7, align 8 %8 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %2, i32 0, i32 0 %9 = load i8*, i8** %8, align 8, !nonnull !2 %10 = getelementptr inbounds { i8*, i64* }, { i8*, i64* }* %2, i32 0, i32 1 %11 = load i64*, i64** %10, align 8, !nonnull !2 %12 = insertvalue { i8*, i64* } undef, i8* %9, 0 %13 = insertvalue { i8*, i64* } %12, i64* %11, 1 ret { i8*, i64* } %13 } ; core::fmt::Arguments::new_v1 ; Function Attrs: inlinehint nonlazybind uwtable define internal void @_ZN4core3fmt9Arguments6new_v117h99eeafbdfca9bd9eE(%"core::fmt::Arguments"* noalias nocapture noundef sret(%"core::fmt::Arguments") dereferenceable(48) %0, [0 x { [0 x i8]*, i64 }]* noundef nonnull align 8 %pieces.0, i64 %pieces.1, [0 x { i8*, i64* }]* noundef nonnull align 8 %args.0, i64 %args.1) unnamed_addr #1 { start: %_23 = alloca { i64*, i64 }, align 8 %_15 = alloca %"core::fmt::Arguments", align 8 %_3 = alloca i8, align 1 %_4 = icmp ult i64 %pieces.1, %args.1 br i1 %_4, label %bb1, label %bb2 bb2: ; preds = %start %_12 = add i64 %args.1, 1 %_9 = icmp ugt i64 %pieces.1, %_12 %1 = zext i1 %_9 to i8 store i8 %1, i8* %_3, align 1 br label %bb3 bb1: ; preds = %start store i8 1, i8* %_3, align 1 br label %bb3 bb3: ; preds = %bb2, %bb1 %2 = load i8, i8* %_3, align 1, !range !3 %3 = trunc i8 %2 to i1 br i1 %3, label %bb4, label %bb6 bb6: ; preds = %bb3 %4 = bitcast { i64*, i64 }* %_23 to {}** store {}* null, {}** %4, align 8 %5 = bitcast %"core::fmt::Arguments"* %0 to { [0 x { [0 x i8]*, i64 }]*, i64 }* %6 = getelementptr inbounds { [0 x { [0 x i8]*, i64 }]*, i64 }, { [0 x { [0 x i8]*, i64 }]*, i64 }* %5, i32 0, i32 0 store [0 x { [0 x i8]*, i64 }]* %pieces.0, [0 x { [0 x i8]*, i64 }]** %6, align 8 %7 = getelementptr inbounds { [0 x { [0 x i8]*, i64 }]*, i64 }, { [0 x { [0 x i8]*, i64 }]*, i64 }* %5, i32 0, i32 1 store i64 %pieces.1, i64* %7, align 8 %8 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %0, i32 0, i32 1 %9 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %_23, i32 0, i32 0 %10 = load i64*, i64** %9, align 8 %11 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %_23, i32 0, i32 1 %12 = load i64, i64* %11, align 8 %13 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %8, i32 0, i32 0 store i64* %10, i64** %13, align 8 %14 = getelementptr inbounds { i64*, i64 }, { i64*, i64 }* %8, i32 0, i32 1 store i64 %12, i64* %14, align 8 %15 = getelementptr inbounds %"core::fmt::Arguments", %"core::fmt::Arguments"* %0, i32 0, i32 2 %16 = getelementptr inbounds { [0 x { i8*, i64* }]*, i64 }, { [0 x { i8*, i64* }]*, i64 }* %15, i32 0, i32 0 store [0 x { i8*, i64* }]* %args.0, [0 x { i8*, i64* }]** %16, align 8 %17 = getelementptr inbounds { [0 x { i8*, i64* }]*, i64 }, { [0 x { i8*, i64* }]*, i64 }* %15, i32 0, i32 1 store i64 %args.1, i64* %17, align 8 ret void bb4: ; preds = %bb3 ; call core::fmt::Arguments::new_v1 call void @_ZN4core3fmt9Arguments6new_v117h99eeafbdfca9bd9eE(%"core::fmt::Arguments"* noalias nocapture noundef sret(%"core::fmt::Arguments") dereferenceable(48) %_15, [0 x { [0 x i8]*, i64 }]* noundef nonnull align 8 bitcast (<{ i8*, [8 x i8] }>* @alloc8 to [0 x { [0 x i8]*, i64 }]*), i64 1, [0 x { i8*, i64* }]* noundef nonnull align 8 bitcast (<{ [0 x i8] }>* @alloc10 to [0 x { i8*, i64* }]*), i64 0) br label %bb5 bb5: ; preds = %bb4 ; call core::panicking::panic_fmt call void @_ZN4core9panicking9panic_fmt17he1bbc7336d49a357E(%"core::fmt::Arguments"* noalias nocapture noundef dereferenceable(48) %_15, %"core::panic::location::Location"* noundef align 8 dereferenceable(24) bitcast (<{ i8*, [16 x i8] }>* @alloc29 to %"core::panic::location::Location"*)) #8 unreachable } ; core::alloc::layout::Layout::from_size_align_unchecked ; Function Attrs: inlinehint nonlazybind uwtable define internal { i64, i64 } @_ZN4core5alloc6layout6Layout25from_size_align_unchecked17h0c8b8b1d0606c792E(i64 %size, i64 %align) unnamed_addr #1 { start: %0 = alloca { i64, i64 }, align 8 ; call core::num::nonzero::NonZeroUsize::new_unchecked %_4 = call i64 @_ZN4core3num7nonzero12NonZeroUsize13new_unchecked17h9ff490317470fb8dE(i64 %align), !range !4 br label %bb1 bb1: ; preds = %start %1 = bitcast { i64, i64 }* %0 to i64* store i64 %size, i64* %1, align 8 %2 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %0, i32 0, i32 1 store i64 %_4, i64* %2, align 8 %3 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %0, i32 0, i32 0 %4 = load i64, i64* %3, align 8 %5 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %0, i32 0, i32 1 %6 = load i64, i64* %5, align 8, !range !4 %7 = insertvalue { i64, i64 } undef, i64 %4, 0 %8 = insertvalue { i64, i64 } %7, i64 %6, 1 ret { i64, i64 } %8 } ; core::alloc::layout::Layout::size ; Function Attrs: inlinehint nonlazybind uwtable define internal i64 @_ZN4core5alloc6layout6Layout4size17hfb2138d70cbfcbfcE({ i64, i64 }* noundef align 8 dereferenceable(16) %self) unnamed_addr #1 { start: %0 = bitcast { i64, i64 }* %self to i64* %1 = load i64, i64* %0, align 8 ret i64 %1 } ; core::alloc::layout::Layout::align ; Function Attrs: inlinehint nonlazybind uwtable define internal i64 @_ZN4core5alloc6layout6Layout5align17h7741f2ecfd4af4ecE({ i64, i64 }* noundef align 8 dereferenceable(16) %self) unnamed_addr #1 { start: %0 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %self, i32 0, i32 1 %_2 = load i64, i64* %0, align 8, !range !4 ; call core::num::nonzero::NonZeroUsize::get %1 = call i64 @_ZN4core3num7nonzero12NonZeroUsize3get17h1930f18810009377E(i64 %_2) br label %bb1 bb1: ; preds = %start ret i64 %1 } ; core::num::nonzero::NonZeroUsize::new_unchecked ; Function Attrs: inlinehint nonlazybind uwtable define internal i64 @_ZN4core3num7nonzero12NonZeroUsize13new_unchecked17h9ff490317470fb8dE(i64 %n) unnamed_addr #1 { start: %0 = alloca i64, align 8 store i64 %n, i64* %0, align 8 %1 = load i64, i64* %0, align 8, !range !4 ret i64 %1 } ; core::num::nonzero::NonZeroUsize::get ; Function Attrs: inlinehint nonlazybind uwtable define internal i64 @_ZN4core3num7nonzero12NonZeroUsize3get17h1930f18810009377E(i64 %self) unnamed_addr #1 { start: ret i64 %self } ; core::fmt::ArgumentV1::new_lower_exp ; Function Attrs: inlinehint nonlazybind uwtable define { i8*, i64* } @_ZN4core3fmt10ArgumentV113new_lower_exp17h042822b93991e3adE(i64* noundef align 8 dereferenceable(8) %x) unnamed_addr #1 { start: ; call core::fmt::ArgumentV1::new %0 = call { i8*, i64* } @_ZN4core3fmt10ArgumentV13new17h8a003a007113b3e6E(i64* noundef align 8 dereferenceable(8) %x, i1 (i64*, %"core::fmt::Formatter"*)* nonnull @"_ZN4core3fmt3num3imp55_$LT$impl$u20$core..fmt..LowerExp$u20$for$u20$isize$GT$3fmt17hbab51f9862c59e16E") %1 = extractvalue { i8*, i64* } %0, 0 %2 = extractvalue { i8*, i64* } %0, 1 br label %bb1 bb1: ; preds = %start %3 = insertvalue { i8*, i64* } undef, i8* %1, 0 %4 = insertvalue { i8*, i64* } %3, i64* %2, 1 ret { i8*, i64* } %4 } ; Function Attrs: nonlazybind uwtable declare i32 @rust_eh_personality(i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*) unnamed_addr #0 ; alloc::fmt::format ; Function Attrs: nonlazybind uwtable declare void @_ZN5alloc3fmt6format17h4141264adb528c54E(%"alloc::string::String"* noalias nocapture noundef sret(%"alloc::string::String") dereferenceable(24), %"core::fmt::Arguments"* noalias nocapture noundef dereferenceable(48)) unnamed_addr #0 ; Function Attrs: argmemonly nofree nounwind willreturn declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg) #2 ; Function Attrs: nounwind nonlazybind uwtable declare void @__rust_dealloc(i8*, i64, i64) unnamed_addr #3 ; Function Attrs: inaccessiblememonly nofree nosync nounwind willreturn declare void @llvm.assume(i1 noundef) #4 ; core::panicking::panic_fmt ; Function Attrs: cold noinline noreturn nonlazybind uwtable declare void @_ZN4core9panicking9panic_fmt17he1bbc7336d49a357E(%"core::fmt::Arguments"* noalias nocapture noundef dereferenceable(48), %"core::panic::location::Location"* noundef align 8 dereferenceable(24)) unnamed_addr #5 ; core::fmt::num::imp::::fmt ; Function Attrs: nonlazybind uwtable declare noundef zeroext i1 @"_ZN4core3fmt3num3imp55_$LT$impl$u20$core..fmt..LowerExp$u20$for$u20$isize$GT$3fmt17hbab51f9862c59e16E"(i64* noundef align 8 dereferenceable(8), %"core::fmt::Formatter"* noundef align 8 dereferenceable(64)) unnamed_addr #0 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 = { argmemonly nofree nounwind willreturn } attributes #3 = { nounwind nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" } attributes #4 = { inaccessiblememonly nofree nosync nounwind willreturn } attributes #5 = { cold noinline noreturn nonlazybind uwtable "probe-stack"="__rust_probestack" "target-cpu"="x86-64" } attributes #6 = { cold } attributes #7 = { nounwind } attributes #8 = { noreturn } !llvm.module.flags = !{!0, !1} !0 = !{i32 7, !"PIC Level", i32 2} !1 = !{i32 2, !"RtLibUseGOT", i32 1} !2 = !{} !3 = !{i8 0, i8 2} !4 = !{i64 1, i64 0}