Last active
June 29, 2017 23:00
-
-
Save stepancheg/33edd364f23826a948023d57954e2f4e to your computer and use it in GitHub Desktop.
--emit=llvm-ir
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; ModuleID = 'xx.cgu-0.rs' | |
source_filename = "xx.cgu-0.rs" | |
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" | |
target triple = "x86_64-apple-darwin" | |
%str_slice = type { i8*, i64 } | |
%"alloc::vec::Vec<u8>" = type { %"alloc::raw_vec::RawVec<u8, alloc::heap::HeapAlloc>", [0 x i8], i64, [0 x i8] } | |
%"alloc::raw_vec::RawVec<u8, alloc::heap::HeapAlloc>" = type { %"core::ptr::Unique<u8>", [0 x i8], i64, [0 x i8], %"alloc::heap::HeapAlloc", [0 x i8] } | |
%"core::ptr::Unique<u8>" = type { %"core::nonzero::NonZero<*const u8>", [0 x i8], %"core::marker::PhantomData<u8>", [0 x i8] } | |
%"core::nonzero::NonZero<*const u8>" = type { i8*, [0 x i8] } | |
%"core::marker::PhantomData<u8>" = type {} | |
%"alloc::heap::HeapAlloc" = type {} | |
%"core::nonzero::NonZero<*const usize>" = type { i64*, [0 x i8] } | |
%"core::ptr::Unique<usize>" = type { %"core::nonzero::NonZero<*const usize>", [0 x i8], %"core::marker::PhantomData<usize>", [0 x i8] } | |
%"core::marker::PhantomData<usize>" = type {} | |
%"core::any::TypeId" = type { i64, [0 x i8] } | |
%"alloc::allocator::Layout" = type { i64, [0 x i8], i64, [0 x i8] } | |
%"core::option::Option<alloc::allocator::Layout>" = type { i64, [0 x i64], [2 x i64] } | |
%"core::option::Option<(alloc::allocator::Layout, usize)>" = type { i64, [0 x i64], [3 x i64] } | |
%"std::collections::hash::table::TaggedHashUintPtr" = type { %"core::ptr::Unique<usize>", [0 x i8] } | |
%"std::collections::hash::map::HashMap<alloc::string::String, u32, std::collections::hash::map::RandomState>" = type { %"std::collections::hash::map::RandomState", [0 x i8], %"std::collections::hash::table::RawTable<alloc::string::String, u32>", [0 x i8], %"std::collections::hash::map::DefaultResizePolicy", [0 x i8] } | |
%"std::collections::hash::map::RandomState" = type { i64, [0 x i8], i64, [0 x i8] } | |
%"std::collections::hash::table::RawTable<alloc::string::String, u32>" = type { i64, [0 x i8], i64, [0 x i8], %"std::collections::hash::table::TaggedHashUintPtr", [0 x i8], %"core::marker::PhantomData<(alloc::string::String, u32)>", [0 x i8] } | |
%"core::marker::PhantomData<(alloc::string::String, u32)>" = type {} | |
%"std::collections::hash::map::DefaultResizePolicy" = type {} | |
%"alloc::string::String" = type { %"alloc::vec::Vec<u8>", [0 x i8] } | |
%"core::slice::Repr<u8>" = type { i8*, [0 x i8], i64, [0 x i8] } | |
%"std::collections::hash::table::RawBucket<alloc::string::String, u32>" = type { i64*, [0 x i8], { %"alloc::string::String", [0 x i8], i32, [4 x i8] }*, [0 x i8], i64, [0 x i8], %"core::marker::PhantomData<(alloc::string::String, u32)>", [0 x i8] } | |
%"unwind::libunwind::_Unwind_Exception" = type { i64, [0 x i8], void (i32, %"unwind::libunwind::_Unwind_Exception"*)*, [0 x i8], [6 x i64], [0 x i8] } | |
%"unwind::libunwind::_Unwind_Context" = type {} | |
@"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap14_MSG_FILE_LINE17he3b833ed519cd8e3E" = external global { %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] } | |
@_ZN3std11collections4hash5table16round_up_to_next10_FILE_LINE17h8dae69255338c1d7E = external global { %str_slice, [0 x i8], i32, [4 x i8] } | |
@str.0 = internal constant [52 x i8] c"assertion failed: target_alignment.is_power_of_two()" | |
@vtable.1 = internal unnamed_addr constant { void (%str_slice*)*, i64, i64, i64 (%str_slice*)* } { void (%str_slice*)* @_ZN4core3ptr13drop_in_place17hbb4500343f000e3cE, i64 16, i64 8, i64 (%str_slice*)* @"_ZN36_$LT$T$u20$as$u20$core..any..Any$GT$11get_type_id17h29dac26175a89af9E" }, align 8 | |
; <alloc::vec::Vec<T> as core::ops::index::IndexMut<core::ops::range::RangeFull>>::index_mut | |
; Function Attrs: inlinehint uwtable | |
define internal { i8*, i64 } @"_ZN106_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..index..IndexMut$LT$core..ops..range..RangeFull$GT$$GT$9index_mut17hc7794058ffa41e1dE"(%"alloc::vec::Vec<u8>"* dereferenceable(24)) unnamed_addr #0 { | |
start: | |
; call <alloc::vec::Vec<T> as core::ops::deref::DerefMut>::deref_mut | |
%1 = call { i8*, i64 } @"_ZN71_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$9deref_mut17h68d01c2d9708665bE"(%"alloc::vec::Vec<u8>"* dereferenceable(24) %0) | |
%2 = extractvalue { i8*, i64 } %1, 0 | |
%3 = extractvalue { i8*, i64 } %1, 1 | |
br label %bb1 | |
bb1: ; preds = %start | |
%4 = insertvalue { i8*, i64 } undef, i8* %2, 0 | |
%5 = insertvalue { i8*, i64 } %4, i64 %3, 1 | |
ret { i8*, i64 } %5 | |
} | |
; <core::ptr::Unique<T>>::as_ptr | |
; Function Attrs: uwtable | |
define internal i64* @"_ZN35_$LT$core..ptr..Unique$LT$T$GT$$GT$6as_ptr17h4876fd451644dac4E"(i64) unnamed_addr #1 { | |
start: | |
%_4 = alloca %"core::nonzero::NonZero<*const usize>" | |
%self = alloca %"core::ptr::Unique<usize>" | |
%abi_cast = alloca i64 | |
%arg0 = alloca %"core::ptr::Unique<usize>" | |
store i64 %0, i64* %abi_cast | |
%1 = bitcast %"core::ptr::Unique<usize>"* %arg0 to i8* | |
%2 = bitcast i64* %abi_cast to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* %2, i64 8, i32 8, i1 false) | |
%3 = bitcast %"core::ptr::Unique<usize>"* %arg0 to i8* | |
%4 = bitcast %"core::ptr::Unique<usize>"* %self to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %4, i8* %3, i64 8, i32 8, i1 false) | |
%5 = getelementptr inbounds %"core::ptr::Unique<usize>", %"core::ptr::Unique<usize>"* %self, i32 0, i32 0 | |
%6 = bitcast %"core::nonzero::NonZero<*const usize>"* %5 to i8* | |
%7 = bitcast %"core::nonzero::NonZero<*const usize>"* %_4 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %7, i8* %6, i64 8, i32 8, i1 false) | |
%8 = bitcast %"core::nonzero::NonZero<*const usize>"* %_4 to i64* | |
%9 = load i64, i64* %8, align 8 | |
; call <core::nonzero::NonZero<T>>::get | |
%10 = call i64* @"_ZN40_$LT$core..nonzero..NonZero$LT$T$GT$$GT$3get17hef06e9318b3edc4bE"(i64 %9) | |
br label %bb1 | |
bb1: ; preds = %start | |
ret i64* %10 | |
} | |
; <core::ptr::Unique<T>>::as_ptr | |
; Function Attrs: uwtable | |
define internal i8* @"_ZN35_$LT$core..ptr..Unique$LT$T$GT$$GT$6as_ptr17hc3cb398e2eaf841bE"(i64) unnamed_addr #1 { | |
start: | |
%_4 = alloca %"core::nonzero::NonZero<*const u8>" | |
%self = alloca %"core::ptr::Unique<u8>" | |
%abi_cast = alloca i64 | |
%arg0 = alloca %"core::ptr::Unique<u8>" | |
store i64 %0, i64* %abi_cast | |
%1 = bitcast %"core::ptr::Unique<u8>"* %arg0 to i8* | |
%2 = bitcast i64* %abi_cast to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* %2, i64 8, i32 8, i1 false) | |
%3 = bitcast %"core::ptr::Unique<u8>"* %arg0 to i8* | |
%4 = bitcast %"core::ptr::Unique<u8>"* %self to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %4, i8* %3, i64 8, i32 8, i1 false) | |
%5 = getelementptr inbounds %"core::ptr::Unique<u8>", %"core::ptr::Unique<u8>"* %self, i32 0, i32 0 | |
%6 = bitcast %"core::nonzero::NonZero<*const u8>"* %5 to i8* | |
%7 = bitcast %"core::nonzero::NonZero<*const u8>"* %_4 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %7, i8* %6, i64 8, i32 8, i1 false) | |
%8 = bitcast %"core::nonzero::NonZero<*const u8>"* %_4 to i64* | |
%9 = load i64, i64* %8, align 8 | |
; call <core::nonzero::NonZero<T>>::get | |
%10 = call i8* @"_ZN40_$LT$core..nonzero..NonZero$LT$T$GT$$GT$3get17h8737c76b24169810E"(i64 %9) | |
br label %bb1 | |
bb1: ; preds = %start | |
ret i8* %10 | |
} | |
; <T as core::any::Any>::get_type_id | |
; Function Attrs: uwtable | |
define internal i64 @"_ZN36_$LT$T$u20$as$u20$core..any..Any$GT$11get_type_id17h29dac26175a89af9E"(%str_slice* noalias readonly dereferenceable(16)) unnamed_addr #1 { | |
start: | |
%abi_cast = alloca i64 | |
%_0 = alloca %"core::any::TypeId" | |
; call core::any::TypeId::of | |
%1 = call i64 @_ZN4core3any6TypeId2of17h40de0ccb53d6c042E() | |
store i64 %1, i64* %abi_cast | |
%2 = bitcast %"core::any::TypeId"* %_0 to i8* | |
%3 = bitcast i64* %abi_cast to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %2, i8* %3, i64 8, i32 8, i1 false) | |
br label %bb1 | |
bb1: ; preds = %start | |
%4 = bitcast %"core::any::TypeId"* %_0 to i64* | |
%5 = load i64, i64* %4, align 8 | |
ret i64 %5 | |
} | |
; <core::option::Option<T>>::unwrap | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h4c2fde4ea85cdcd6E"(%"alloc::allocator::Layout"* noalias nocapture sret dereferenceable(16), %"core::option::Option<alloc::allocator::Layout>"* noalias nocapture dereferenceable(24)) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
start: | |
%personalityslot = alloca { i8*, i32 } | |
%self = alloca %"core::option::Option<alloc::allocator::Layout>" | |
%2 = bitcast %"core::option::Option<alloc::allocator::Layout>"* %1 to i8* | |
%3 = bitcast %"core::option::Option<alloc::allocator::Layout>"* %self to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %3, i8* %2, i64 24, i32 8, i1 false) | |
%4 = getelementptr inbounds %"core::option::Option<alloc::allocator::Layout>", %"core::option::Option<alloc::allocator::Layout>"* %self, i32 0, i32 0 | |
%5 = load i64, i64* %4, !range !0 | |
switch i64 %5, label %bb3 [ | |
i64 0, label %bb2 | |
] | |
bb1: ; preds = %bb4 | |
%6 = load { i8*, i32 }, { i8*, i32 }* %personalityslot | |
resume { i8*, i32 } %6 | |
bb2: ; preds = %start | |
; invoke core::panicking::panic | |
invoke void @_ZN4core9panicking5panic17h62639c90155483f2E({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) @"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap14_MSG_FILE_LINE17he3b833ed519cd8e3E") | |
to label %unreachable unwind label %cleanup | |
bb3: ; preds = %start | |
%7 = bitcast %"core::option::Option<alloc::allocator::Layout>"* %self to { i64, [0 x i8], %"alloc::allocator::Layout", [0 x i8] }* | |
%8 = getelementptr inbounds { i64, [0 x i8], %"alloc::allocator::Layout", [0 x i8] }, { i64, [0 x i8], %"alloc::allocator::Layout", [0 x i8] }* %7, i32 0, i32 2 | |
%9 = getelementptr inbounds %"alloc::allocator::Layout", %"alloc::allocator::Layout"* %8, i32 0, i32 0 | |
%10 = getelementptr inbounds %"alloc::allocator::Layout", %"alloc::allocator::Layout"* %8, i32 0, i32 2 | |
%11 = load i64, i64* %9 | |
%12 = load i64, i64* %10 | |
%13 = getelementptr inbounds %"alloc::allocator::Layout", %"alloc::allocator::Layout"* %0, i32 0, i32 0 | |
store i64 %11, i64* %13 | |
%14 = getelementptr inbounds %"alloc::allocator::Layout", %"alloc::allocator::Layout"* %0, i32 0, i32 2 | |
store i64 %12, i64* %14 | |
%15 = getelementptr inbounds %"core::option::Option<alloc::allocator::Layout>", %"core::option::Option<alloc::allocator::Layout>"* %self, i32 0, i32 0 | |
%16 = load i64, i64* %15, !range !0 | |
switch i64 %16, label %bb6 [ | |
i64 1, label %bb5 | |
] | |
bb4: ; preds = %cleanup | |
br label %bb1 | |
bb5: ; preds = %bb6, %bb3 | |
ret void | |
bb6: ; preds = %bb3 | |
br label %bb5 | |
unreachable: ; preds = %bb2 | |
unreachable | |
cleanup: ; preds = %bb2 | |
%17 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %17, { i8*, i32 }* %personalityslot | |
br label %bb4 | |
} | |
; <core::option::Option<T>>::unwrap | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17hae032cea98037bf3E"({ %"alloc::allocator::Layout", [0 x i8], i64, [0 x i8] }* noalias nocapture sret dereferenceable(24), %"core::option::Option<(alloc::allocator::Layout, usize)>"* noalias nocapture dereferenceable(32)) unnamed_addr #0 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
start: | |
%personalityslot = alloca { i8*, i32 } | |
%_5 = alloca { %"alloc::allocator::Layout", [0 x i8], i64, [0 x i8] } | |
%val = alloca { %"alloc::allocator::Layout", [0 x i8], i64, [0 x i8] } | |
%self = alloca %"core::option::Option<(alloc::allocator::Layout, usize)>" | |
%2 = bitcast %"core::option::Option<(alloc::allocator::Layout, usize)>"* %1 to i8* | |
%3 = bitcast %"core::option::Option<(alloc::allocator::Layout, usize)>"* %self to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %3, i8* %2, i64 32, i32 8, i1 false) | |
%4 = getelementptr inbounds %"core::option::Option<(alloc::allocator::Layout, usize)>", %"core::option::Option<(alloc::allocator::Layout, usize)>"* %self, i32 0, i32 0 | |
%5 = load i64, i64* %4, !range !0 | |
switch i64 %5, label %bb3 [ | |
i64 0, label %bb2 | |
] | |
bb1: ; preds = %bb4 | |
%6 = load { i8*, i32 }, { i8*, i32 }* %personalityslot | |
resume { i8*, i32 } %6 | |
bb2: ; preds = %start | |
; invoke core::panicking::panic | |
invoke void @_ZN4core9panicking5panic17h62639c90155483f2E({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40) @"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap14_MSG_FILE_LINE17he3b833ed519cd8e3E") | |
to label %unreachable unwind label %cleanup | |
bb3: ; preds = %start | |
%7 = bitcast %"core::option::Option<(alloc::allocator::Layout, usize)>"* %self to { i64, [0 x i8], { %"alloc::allocator::Layout", [0 x i8], i64, [0 x i8] }, [0 x i8] }* | |
%8 = getelementptr inbounds { i64, [0 x i8], { %"alloc::allocator::Layout", [0 x i8], i64, [0 x i8] }, [0 x i8] }, { i64, [0 x i8], { %"alloc::allocator::Layout", [0 x i8], i64, [0 x i8] }, [0 x i8] }* %7, i32 0, i32 2 | |
%9 = bitcast { %"alloc::allocator::Layout", [0 x i8], i64, [0 x i8] }* %8 to i8* | |
%10 = bitcast { %"alloc::allocator::Layout", [0 x i8], i64, [0 x i8] }* %val to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %10, i8* %9, i64 24, i32 8, i1 false) | |
%11 = bitcast { %"alloc::allocator::Layout", [0 x i8], i64, [0 x i8] }* %val to i8* | |
%12 = bitcast { %"alloc::allocator::Layout", [0 x i8], i64, [0 x i8] }* %_5 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %12, i8* %11, i64 24, i32 8, i1 false) | |
%13 = bitcast { %"alloc::allocator::Layout", [0 x i8], i64, [0 x i8] }* %_5 to i8* | |
%14 = bitcast { %"alloc::allocator::Layout", [0 x i8], i64, [0 x i8] }* %0 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %14, i8* %13, i64 24, i32 8, i1 false) | |
%15 = getelementptr inbounds %"core::option::Option<(alloc::allocator::Layout, usize)>", %"core::option::Option<(alloc::allocator::Layout, usize)>"* %self, i32 0, i32 0 | |
%16 = load i64, i64* %15, !range !0 | |
switch i64 %16, label %bb6 [ | |
i64 1, label %bb5 | |
] | |
bb4: ; preds = %cleanup | |
br label %bb1 | |
bb5: ; preds = %bb6, %bb3 | |
ret void | |
bb6: ; preds = %bb3 | |
br label %bb5 | |
unreachable: ; preds = %bb2 | |
unreachable | |
cleanup: ; preds = %bb2 | |
%17 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %17, { i8*, i32 }* %personalityslot | |
br label %bb4 | |
} | |
; std::collections::hash::table::round_up_to_next | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN3std11collections4hash5table16round_up_to_next17h500c4c94a01de337E(i64, i64) unnamed_addr #0 { | |
start: | |
; call core::num::<impl usize>::is_power_of_two | |
%2 = call zeroext i1 @"_ZN4core3num23_$LT$impl$u20$usize$GT$15is_power_of_two17h1f3a4b793df2b279E"(i64 %1) | |
br label %bb1 | |
bb1: ; preds = %start | |
%3 = xor i1 %2, true | |
br i1 %3, label %bb2, label %bb3 | |
bb2: ; preds = %bb1 | |
; call std::panicking::begin_panic | |
call void @_ZN3std9panicking11begin_panic17h9140120de4b013a3E(i8* noalias nonnull readonly getelementptr inbounds ([52 x i8], [52 x i8]* @str.0, i32 0, i32 0), i64 52, { %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) @_ZN3std11collections4hash5table16round_up_to_next10_FILE_LINE17h8dae69255338c1d7E) | |
unreachable | |
bb3: ; preds = %bb1 | |
%4 = add i64 %0, %1 | |
%5 = sub i64 %4, 1 | |
%6 = sub i64 %1, 1 | |
%7 = xor i64 %6, -1 | |
%8 = and i64 %5, %7 | |
ret i64 %8 | |
} | |
; std::collections::hash::table::TaggedHashUintPtr::ptr | |
; Function Attrs: inlinehint uwtable | |
define internal i64* @_ZN3std11collections4hash5table17TaggedHashUintPtr3ptr17hceb3703b2b95ec3cE(%"std::collections::hash::table::TaggedHashUintPtr"* noalias readonly dereferenceable(8)) unnamed_addr #0 { | |
start: | |
%_6 = alloca %"core::ptr::Unique<usize>" | |
%1 = getelementptr inbounds %"std::collections::hash::table::TaggedHashUintPtr", %"std::collections::hash::table::TaggedHashUintPtr"* %0, i32 0, i32 0 | |
%2 = bitcast %"core::ptr::Unique<usize>"* %1 to i8* | |
%3 = bitcast %"core::ptr::Unique<usize>"* %_6 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %3, i8* %2, i64 8, i32 8, i1 false) | |
%4 = bitcast %"core::ptr::Unique<usize>"* %_6 to i64* | |
%5 = load i64, i64* %4, align 8 | |
; call <core::ptr::Unique<T>>::as_ptr | |
%6 = call i64* @"_ZN35_$LT$core..ptr..Unique$LT$T$GT$$GT$6as_ptr17h4876fd451644dac4E"(i64 %5) | |
br label %bb1 | |
bb1: ; preds = %start | |
%7 = ptrtoint i64* %6 to i64 | |
%8 = and i64 %7, -2 | |
%9 = inttoptr i64 %8 to i64* | |
ret i64* %9 | |
} | |
; std::collections::hash::table::calculate_offsets | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3std11collections4hash5table17calculate_offsets17hd311671f7f37c2daE({ i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] }* noalias nocapture sret dereferenceable(24), i64, i64, i64) unnamed_addr #0 { | |
start: | |
%tmp_ret = alloca { i64, [0 x i8], i8, [7 x i8] } | |
; call std::collections::hash::table::round_up_to_next | |
%4 = call i64 @_ZN3std11collections4hash5table16round_up_to_next17h500c4c94a01de337E(i64 %1, i64 %3) | |
br label %bb1 | |
bb1: ; preds = %start | |
; call core::num::<impl usize>::overflowing_add | |
call void @"_ZN4core3num23_$LT$impl$u20$usize$GT$15overflowing_add17h55cac7765ed38900E"({ i64, [0 x i8], i8, [7 x i8] }* noalias nocapture sret dereferenceable(16) %tmp_ret, i64 %4, i64 %2) | |
%5 = getelementptr inbounds { i64, [0 x i8], i8, [7 x i8] }, { i64, [0 x i8], i8, [7 x i8] }* %tmp_ret, i32 0, i32 0 | |
%6 = getelementptr inbounds { i64, [0 x i8], i8, [7 x i8] }, { i64, [0 x i8], i8, [7 x i8] }* %tmp_ret, i32 0, i32 2 | |
%7 = load i64, i64* %5 | |
%8 = load i8, i8* %6, !range !1 | |
%9 = trunc i8 %8 to i1 | |
br label %bb2 | |
bb2: ; preds = %bb1 | |
%10 = getelementptr inbounds { i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] }, { i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] }* %0, i32 0, i32 0 | |
store i64 %4, i64* %10 | |
%11 = getelementptr inbounds { i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] }, { i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] }* %0, i32 0, i32 2 | |
store i64 %7, i64* %11 | |
%12 = getelementptr inbounds { i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] }, { i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] }* %0, i32 0, i32 4 | |
%13 = zext i1 %9 to i8 | |
store i8 %13, i8* %12 | |
ret void | |
} | |
; std::panicking::begin_panic | |
; Function Attrs: cold noinline noreturn uwtable | |
define internal void @_ZN3std9panicking11begin_panic17h9140120de4b013a3E(i8* noalias nonnull readonly, i64, { %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24)) unnamed_addr #2 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
start: | |
%personalityslot = alloca { i8*, i32 } | |
; invoke alloc::heap::exchange_malloc | |
%3 = invoke i8* @_ZN5alloc4heap15exchange_malloc17h14d65bf0926286feE(i64 16, i64 8) | |
to label %"_ZN35_$LT$alloc..boxed..Box$LT$T$GT$$GT$3new17h5ad0927f81583286E.exit" unwind label %cleanup | |
"_ZN35_$LT$alloc..boxed..Box$LT$T$GT$$GT$3new17h5ad0927f81583286E.exit": ; preds = %start | |
%4 = bitcast i8* %3 to %str_slice* | |
%5 = getelementptr inbounds %str_slice, %str_slice* %4, i32 0, i32 0 | |
store i8* %0, i8** %5, !noalias !2 | |
%6 = getelementptr inbounds %str_slice, %str_slice* %4, i32 0, i32 1 | |
store i64 %1, i64* %6 | |
br label %bb3 | |
bb1: ; preds = %bb4, %bb2 | |
%7 = load { i8*, i32 }, { i8*, i32 }* %personalityslot | |
resume { i8*, i32 } %7 | |
bb2: ; preds = %cleanup | |
br label %bb1 | |
bb3: ; preds = %"_ZN35_$LT$alloc..boxed..Box$LT$T$GT$$GT$3new17h5ad0927f81583286E.exit" | |
%8 = bitcast %str_slice* %4 to i8* | |
%9 = bitcast i8* %8 to {}* | |
; invoke std::panicking::rust_panic_with_hook | |
invoke void @_ZN3std9panicking20rust_panic_with_hook17h070dbedc97871d0aE({}* noalias nonnull %9, {}* noalias nonnull readonly bitcast ({ void (%str_slice*)*, i64, i64, i64 (%str_slice*)* }* @vtable.1 to {}*), { %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24) %2) | |
to label %unreachable unwind label %cleanup1 | |
bb4: ; preds = %cleanup1 | |
br label %bb1 | |
cleanup: ; preds = %start | |
%10 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %10, { i8*, i32 }* %personalityslot | |
br label %bb2 | |
unreachable: ; preds = %bb3 | |
unreachable | |
cleanup1: ; preds = %bb3 | |
%11 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %11, { i8*, i32 }* %personalityslot | |
br label %bb4 | |
} | |
; <core::nonzero::NonZero<T>>::get | |
; Function Attrs: uwtable | |
define internal i8* @"_ZN40_$LT$core..nonzero..NonZero$LT$T$GT$$GT$3get17h8737c76b24169810E"(i64) unnamed_addr #1 { | |
start: | |
%self = alloca %"core::nonzero::NonZero<*const u8>" | |
%abi_cast = alloca i64 | |
%arg0 = alloca %"core::nonzero::NonZero<*const u8>" | |
store i64 %0, i64* %abi_cast | |
%1 = bitcast %"core::nonzero::NonZero<*const u8>"* %arg0 to i8* | |
%2 = bitcast i64* %abi_cast to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* %2, i64 8, i32 8, i1 false) | |
%3 = bitcast %"core::nonzero::NonZero<*const u8>"* %arg0 to i8* | |
%4 = bitcast %"core::nonzero::NonZero<*const u8>"* %self to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %4, i8* %3, i64 8, i32 8, i1 false) | |
%5 = getelementptr inbounds %"core::nonzero::NonZero<*const u8>", %"core::nonzero::NonZero<*const u8>"* %self, i32 0, i32 0 | |
%6 = load i8*, i8** %5 | |
ret i8* %6 | |
} | |
; <core::nonzero::NonZero<T>>::get | |
; Function Attrs: uwtable | |
define internal i64* @"_ZN40_$LT$core..nonzero..NonZero$LT$T$GT$$GT$3get17hef06e9318b3edc4bE"(i64) unnamed_addr #1 { | |
start: | |
%self = alloca %"core::nonzero::NonZero<*const usize>" | |
%abi_cast = alloca i64 | |
%arg0 = alloca %"core::nonzero::NonZero<*const usize>" | |
store i64 %0, i64* %abi_cast | |
%1 = bitcast %"core::nonzero::NonZero<*const usize>"* %arg0 to i8* | |
%2 = bitcast i64* %abi_cast to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* %2, i64 8, i32 8, i1 false) | |
%3 = bitcast %"core::nonzero::NonZero<*const usize>"* %arg0 to i8* | |
%4 = bitcast %"core::nonzero::NonZero<*const usize>"* %self to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %4, i8* %3, i64 8, i32 8, i1 false) | |
%5 = getelementptr inbounds %"core::nonzero::NonZero<*const usize>", %"core::nonzero::NonZero<*const usize>"* %self, i32 0, i32 0 | |
%6 = load i64*, i64** %5 | |
ret i64* %6 | |
} | |
; <alloc::raw_vec::RawVec<T, A>>::dealloc_buffer | |
; Function Attrs: uwtable | |
define internal void @"_ZN49_$LT$alloc..raw_vec..RawVec$LT$T$C$$u20$A$GT$$GT$14dealloc_buffer17h9c6f91926ee3e0a6E"(%"alloc::raw_vec::RawVec<u8, alloc::heap::HeapAlloc>"* dereferenceable(16)) unnamed_addr #1 { | |
start: | |
%arg = alloca %"alloc::allocator::Layout" | |
%_17 = alloca %"alloc::allocator::Layout" | |
%_15 = alloca %"core::option::Option<(alloc::allocator::Layout, usize)>" | |
%_14 = alloca { %"alloc::allocator::Layout", [0 x i8], i64, [0 x i8] } | |
%_4 = alloca i8 | |
%_0 = alloca {} | |
; call core::mem::size_of | |
%1 = call i64 @_ZN4core3mem7size_of17hf23eed341ba9caafE() | |
br label %bb1 | |
bb1: ; preds = %start | |
%2 = icmp ne i64 %1, 0 | |
br i1 %2, label %bb4, label %bb3 | |
bb2: ; preds = %bb4 | |
store i8 1, i8* %_4 | |
br label %bb5 | |
bb3: ; preds = %bb4, %bb1 | |
store i8 0, i8* %_4 | |
br label %bb5 | |
bb4: ; preds = %bb1 | |
%3 = getelementptr inbounds %"alloc::raw_vec::RawVec<u8, alloc::heap::HeapAlloc>", %"alloc::raw_vec::RawVec<u8, alloc::heap::HeapAlloc>"* %0, i32 0, i32 2 | |
%4 = load i64, i64* %3 | |
%5 = icmp ne i64 %4, 0 | |
br i1 %5, label %bb2, label %bb3 | |
bb5: ; preds = %bb3, %bb2 | |
%6 = load i8, i8* %_4, !range !1 | |
%7 = trunc i8 %6 to i1 | |
br i1 %7, label %bb6, label %bb7 | |
bb6: ; preds = %bb5 | |
; call <alloc::raw_vec::RawVec<T, A>>::ptr | |
%8 = call i8* @"_ZN49_$LT$alloc..raw_vec..RawVec$LT$T$C$$u20$A$GT$$GT$3ptr17hfade4d736973f114E"(%"alloc::raw_vec::RawVec<u8, alloc::heap::HeapAlloc>"* noalias readonly dereferenceable(16) %0) | |
br label %bb8 | |
bb7: ; preds = %bb5 | |
br label %bb13 | |
bb8: ; preds = %bb6 | |
; call alloc::allocator::Layout::new | |
call void @_ZN5alloc9allocator6Layout3new17he027ae8e9b401019E(%"alloc::allocator::Layout"* noalias nocapture sret dereferenceable(16) %_17) | |
br label %bb9 | |
bb9: ; preds = %bb8 | |
%9 = getelementptr inbounds %"alloc::raw_vec::RawVec<u8, alloc::heap::HeapAlloc>", %"alloc::raw_vec::RawVec<u8, alloc::heap::HeapAlloc>"* %0, i32 0, i32 2 | |
%10 = load i64, i64* %9 | |
; call alloc::allocator::Layout::repeat | |
call void @_ZN5alloc9allocator6Layout6repeat17h552f5096c4e7899dE(%"core::option::Option<(alloc::allocator::Layout, usize)>"* noalias nocapture sret dereferenceable(32) %_15, %"alloc::allocator::Layout"* noalias readonly dereferenceable(16) %_17, i64 %10) | |
br label %bb10 | |
bb10: ; preds = %bb9 | |
; call <core::option::Option<T>>::unwrap | |
call void @"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17hae032cea98037bf3E"({ %"alloc::allocator::Layout", [0 x i8], i64, [0 x i8] }* noalias nocapture sret dereferenceable(24) %_14, %"core::option::Option<(alloc::allocator::Layout, usize)>"* noalias nocapture dereferenceable(32) %_15) | |
br label %bb11 | |
bb11: ; preds = %bb10 | |
%11 = getelementptr inbounds { %"alloc::allocator::Layout", [0 x i8], i64, [0 x i8] }, { %"alloc::allocator::Layout", [0 x i8], i64, [0 x i8] }* %_14, i32 0, i32 0 | |
%12 = getelementptr inbounds %"alloc::allocator::Layout", %"alloc::allocator::Layout"* %11, i32 0, i32 0 | |
%13 = getelementptr inbounds %"alloc::allocator::Layout", %"alloc::allocator::Layout"* %11, i32 0, i32 2 | |
%14 = load i64, i64* %12 | |
%15 = load i64, i64* %13 | |
%16 = getelementptr inbounds %"alloc::raw_vec::RawVec<u8, alloc::heap::HeapAlloc>", %"alloc::raw_vec::RawVec<u8, alloc::heap::HeapAlloc>"* %0, i32 0, i32 4 | |
%17 = getelementptr inbounds %"alloc::allocator::Layout", %"alloc::allocator::Layout"* %arg, i32 0, i32 0 | |
store i64 %14, i64* %17 | |
%18 = getelementptr inbounds %"alloc::allocator::Layout", %"alloc::allocator::Layout"* %arg, i32 0, i32 2 | |
store i64 %15, i64* %18 | |
; call <alloc::heap::HeapAlloc as alloc::allocator::Alloc>::dealloc | |
call void @"_ZN66_$LT$alloc..heap..HeapAlloc$u20$as$u20$alloc..allocator..Alloc$GT$7dealloc17h867ab70d434fced2E"(%"alloc::heap::HeapAlloc"* %16, i8* %8, %"alloc::allocator::Layout"* noalias nocapture dereferenceable(16) %arg) | |
br label %bb12 | |
bb12: ; preds = %bb11 | |
br label %bb13 | |
bb13: ; preds = %bb7, %bb12 | |
ret void | |
} | |
; <alloc::raw_vec::RawVec<T, A>>::ptr | |
; Function Attrs: uwtable | |
define internal i8* @"_ZN49_$LT$alloc..raw_vec..RawVec$LT$T$C$$u20$A$GT$$GT$3ptr17hfade4d736973f114E"(%"alloc::raw_vec::RawVec<u8, alloc::heap::HeapAlloc>"* noalias readonly dereferenceable(16)) unnamed_addr #1 { | |
start: | |
%_3 = alloca %"core::ptr::Unique<u8>" | |
%1 = getelementptr inbounds %"alloc::raw_vec::RawVec<u8, alloc::heap::HeapAlloc>", %"alloc::raw_vec::RawVec<u8, alloc::heap::HeapAlloc>"* %0, i32 0, i32 0 | |
%2 = bitcast %"core::ptr::Unique<u8>"* %1 to i8* | |
%3 = bitcast %"core::ptr::Unique<u8>"* %_3 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %3, i8* %2, i64 8, i32 8, i1 false) | |
%4 = bitcast %"core::ptr::Unique<u8>"* %_3 to i64* | |
%5 = load i64, i64* %4, align 8 | |
; call <core::ptr::Unique<T>>::as_ptr | |
%6 = call i8* @"_ZN35_$LT$core..ptr..Unique$LT$T$GT$$GT$6as_ptr17hc3cb398e2eaf841bE"(i64 %5) | |
br label %bb1 | |
bb1: ; preds = %start | |
ret i8* %6 | |
} | |
; core::any::TypeId::of | |
; Function Attrs: uwtable | |
define internal i64 @_ZN4core3any6TypeId2of17h40de0ccb53d6c042E() unnamed_addr #1 { | |
start: | |
%tmp_ret = alloca i64 | |
%_0 = alloca %"core::any::TypeId" | |
store i64 -1272273853143013722, i64* %tmp_ret | |
%0 = load i64, i64* %tmp_ret | |
br label %bb1 | |
bb1: ; preds = %start | |
%1 = getelementptr inbounds %"core::any::TypeId", %"core::any::TypeId"* %_0, i32 0, i32 0 | |
store i64 %0, i64* %1 | |
%2 = bitcast %"core::any::TypeId"* %_0 to i64* | |
%3 = load i64, i64* %2, align 8 | |
ret i64 %3 | |
} | |
; core::mem::needs_drop | |
; Function Attrs: inlinehint uwtable | |
define internal zeroext i1 @_ZN4core3mem10needs_drop17h582fdac1a5b9cba1E() unnamed_addr #0 { | |
start: | |
%tmp_ret = alloca i8 | |
store i8 1, i8* %tmp_ret | |
%0 = load i8, i8* %tmp_ret, !range !1 | |
%1 = trunc i8 %0 to i1 | |
br label %bb1 | |
bb1: ; preds = %start | |
ret i1 %1 | |
} | |
; core::mem::size_of | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN4core3mem7size_of17h420c9d0a13642555E() unnamed_addr #0 { | |
start: | |
%tmp_ret = alloca i64 | |
store i64 32, i64* %tmp_ret | |
%0 = load i64, i64* %tmp_ret | |
br label %bb1 | |
bb1: ; preds = %start | |
ret i64 %0 | |
} | |
; core::mem::size_of | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN4core3mem7size_of17hf23eed341ba9caafE() unnamed_addr #0 { | |
start: | |
%tmp_ret = alloca i64 | |
store i64 1, i64* %tmp_ret | |
%0 = load i64, i64* %tmp_ret | |
br label %bb1 | |
bb1: ; preds = %start | |
ret i64 %0 | |
} | |
; core::mem::size_of | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN4core3mem7size_of17hf487c6f8f8065bdbE() unnamed_addr #0 { | |
start: | |
%tmp_ret = alloca i64 | |
store i64 8, i64* %tmp_ret | |
%0 = load i64, i64* %tmp_ret | |
br label %bb1 | |
bb1: ; preds = %start | |
ret i64 %0 | |
} | |
; core::mem::align_of | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN4core3mem8align_of17h7a7ea9d0cdbbfca9E() unnamed_addr #0 { | |
start: | |
%tmp_ret = alloca i64 | |
store i64 8, i64* %tmp_ret | |
%0 = load i64, i64* %tmp_ret | |
br label %bb1 | |
bb1: ; preds = %start | |
ret i64 %0 | |
} | |
; core::mem::align_of | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN4core3mem8align_of17hb1751fc426011276E() unnamed_addr #0 { | |
start: | |
%tmp_ret = alloca i64 | |
store i64 8, i64* %tmp_ret | |
%0 = load i64, i64* %tmp_ret | |
br label %bb1 | |
bb1: ; preds = %start | |
ret i64 %0 | |
} | |
; core::mem::align_of | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN4core3mem8align_of17heefba6edf2f0843dE() unnamed_addr #0 { | |
start: | |
%tmp_ret = alloca i64 | |
store i64 1, i64* %tmp_ret | |
%0 = load i64, i64* %tmp_ret | |
br label %bb1 | |
bb1: ; preds = %start | |
ret i64 %0 | |
} | |
; core::num::<impl usize>::wrapping_add | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @"_ZN4core3num23_$LT$impl$u20$usize$GT$12wrapping_add17h60cc7bcd2228b7e8E"(i64, i64) unnamed_addr #0 { | |
start: | |
%tmp_ret = alloca i64 | |
%2 = add i64 %0, %1 | |
store i64 %2, i64* %tmp_ret | |
%3 = load i64, i64* %tmp_ret | |
br label %bb1 | |
bb1: ; preds = %start | |
ret i64 %3 | |
} | |
; core::num::<impl usize>::wrapping_sub | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @"_ZN4core3num23_$LT$impl$u20$usize$GT$12wrapping_sub17h269494f276467a57E"(i64, i64) unnamed_addr #0 { | |
start: | |
%tmp_ret = alloca i64 | |
%2 = sub i64 %0, %1 | |
store i64 %2, i64* %tmp_ret | |
%3 = load i64, i64* %tmp_ret | |
br label %bb1 | |
bb1: ; preds = %start | |
ret i64 %3 | |
} | |
; core::num::<impl usize>::is_power_of_two | |
; Function Attrs: inlinehint uwtable | |
define internal zeroext i1 @"_ZN4core3num23_$LT$impl$u20$usize$GT$15is_power_of_two17h1f3a4b793df2b279E"(i64) unnamed_addr #0 { | |
start: | |
%_0 = alloca i8 | |
; call core::num::<impl usize>::wrapping_sub | |
%1 = call i64 @"_ZN4core3num23_$LT$impl$u20$usize$GT$12wrapping_sub17h269494f276467a57E"(i64 %0, i64 1) | |
br label %bb5 | |
bb1: ; preds = %bb3 | |
store i8 1, i8* %_0 | |
br label %bb4 | |
bb2: ; preds = %bb3, %bb5 | |
store i8 0, i8* %_0 | |
br label %bb4 | |
bb3: ; preds = %bb5 | |
%2 = icmp eq i64 %0, 0 | |
%3 = xor i1 %2, true | |
br i1 %3, label %bb1, label %bb2 | |
bb4: ; preds = %bb2, %bb1 | |
%4 = load i8, i8* %_0, !range !1 | |
%5 = trunc i8 %4 to i1 | |
ret i1 %5 | |
bb5: ; preds = %start | |
%6 = and i64 %1, %0 | |
%7 = icmp eq i64 %6, 0 | |
br i1 %7, label %bb3, label %bb2 | |
} | |
; core::num::<impl usize>::overflowing_add | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN4core3num23_$LT$impl$u20$usize$GT$15overflowing_add17h55cac7765ed38900E"({ i64, [0 x i8], i8, [7 x i8] }* noalias nocapture sret dereferenceable(16), i64, i64) unnamed_addr #0 { | |
start: | |
%tmp_ret = alloca { i64, [0 x i8], i8, [7 x i8] } | |
%3 = call { i64, i1 } @llvm.uadd.with.overflow.i64(i64 %1, i64 %2) | |
%4 = extractvalue { i64, i1 } %3, 0 | |
%5 = extractvalue { i64, i1 } %3, 1 | |
%6 = zext i1 %5 to i8 | |
%7 = getelementptr inbounds { i64, [0 x i8], i8, [7 x i8] }, { i64, [0 x i8], i8, [7 x i8] }* %tmp_ret, i32 0, i32 0 | |
store i64 %4, i64* %7 | |
%8 = getelementptr inbounds { i64, [0 x i8], i8, [7 x i8] }, { i64, [0 x i8], i8, [7 x i8] }* %tmp_ret, i32 0, i32 1 | |
%9 = bitcast [0 x i8]* %8 to i8* | |
store i8 %6, i8* %9 | |
%10 = getelementptr inbounds { i64, [0 x i8], i8, [7 x i8] }, { i64, [0 x i8], i8, [7 x i8] }* %tmp_ret, i32 0, i32 0 | |
%11 = getelementptr inbounds { i64, [0 x i8], i8, [7 x i8] }, { i64, [0 x i8], i8, [7 x i8] }* %tmp_ret, i32 0, i32 2 | |
%12 = load i64, i64* %10 | |
%13 = load i8, i8* %11, !range !1 | |
%14 = trunc i8 %13 to i1 | |
br label %bb1 | |
bb1: ; preds = %start | |
%15 = getelementptr inbounds { i64, [0 x i8], i8, [7 x i8] }, { i64, [0 x i8], i8, [7 x i8] }* %0, i32 0, i32 0 | |
store i64 %12, i64* %15 | |
%16 = getelementptr inbounds { i64, [0 x i8], i8, [7 x i8] }, { i64, [0 x i8], i8, [7 x i8] }* %0, i32 0, i32 2 | |
%17 = zext i1 %14 to i8 | |
store i8 %17, i8* %16 | |
ret void | |
} | |
; core::ptr::drop_in_place | |
; Function Attrs: uwtable | |
define internal void @_ZN4core3ptr13drop_in_place17h823bfb43d5cc5694E(%"alloc::raw_vec::RawVec<u8, alloc::heap::HeapAlloc>"*) unnamed_addr #1 { | |
start: | |
; call <alloc::raw_vec::RawVec<T, A> as core::ops::drop::Drop>::drop | |
call void @"_ZN82_$LT$alloc..raw_vec..RawVec$LT$T$C$$u20$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hcdf2b0db6a195e21E"(%"alloc::raw_vec::RawVec<u8, alloc::heap::HeapAlloc>"* dereferenceable(16) %0) | |
br label %bb1 | |
bb1: ; preds = %start | |
ret void | |
} | |
; core::ptr::drop_in_place | |
; Function Attrs: uwtable | |
define internal void @_ZN4core3ptr13drop_in_place17hbb4500343f000e3cE(%str_slice*) unnamed_addr #1 { | |
start: | |
ret void | |
} | |
; core::ptr::drop_in_place | |
; Function Attrs: uwtable | |
define internal void @_ZN4core3ptr13drop_in_place17hc45b0ec2880cff63E(%"std::collections::hash::map::HashMap<alloc::string::String, u32, std::collections::hash::map::RandomState>"*) unnamed_addr #1 { | |
start: | |
%1 = getelementptr inbounds %"std::collections::hash::map::HashMap<alloc::string::String, u32, std::collections::hash::map::RandomState>", %"std::collections::hash::map::HashMap<alloc::string::String, u32, std::collections::hash::map::RandomState>"* %0, i32 0, i32 2 | |
; call core::ptr::drop_in_place | |
call void @_ZN4core3ptr13drop_in_place17hfa906e9d21f1a35bE(%"std::collections::hash::table::RawTable<alloc::string::String, u32>"* %1) | |
br label %bb1 | |
bb1: ; preds = %start | |
ret void | |
} | |
; core::ptr::drop_in_place | |
; Function Attrs: uwtable | |
define internal void @_ZN4core3ptr13drop_in_place17hd7240e5eeb07333fE(%"alloc::vec::Vec<u8>"*) unnamed_addr #1 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
start: | |
%personalityslot = alloca { i8*, i32 } | |
; invoke <alloc::vec::Vec<T> as core::ops::drop::Drop>::drop | |
invoke void @"_ZN66_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha866afff06ba2767E"(%"alloc::vec::Vec<u8>"* dereferenceable(24) %0) | |
to label %bb4 unwind label %cleanup | |
bb1: ; preds = %bb4 | |
ret void | |
bb2: ; preds = %bb3 | |
%1 = load { i8*, i32 }, { i8*, i32 }* %personalityslot | |
resume { i8*, i32 } %1 | |
bb3: ; preds = %cleanup | |
%2 = getelementptr inbounds %"alloc::vec::Vec<u8>", %"alloc::vec::Vec<u8>"* %0, i32 0, i32 0 | |
; call core::ptr::drop_in_place | |
call void @_ZN4core3ptr13drop_in_place17h823bfb43d5cc5694E(%"alloc::raw_vec::RawVec<u8, alloc::heap::HeapAlloc>"* %2) #9 | |
br label %bb2 | |
bb4: ; preds = %start | |
%3 = getelementptr inbounds %"alloc::vec::Vec<u8>", %"alloc::vec::Vec<u8>"* %0, i32 0, i32 0 | |
; call core::ptr::drop_in_place | |
call void @_ZN4core3ptr13drop_in_place17h823bfb43d5cc5694E(%"alloc::raw_vec::RawVec<u8, alloc::heap::HeapAlloc>"* %3) | |
br label %bb1 | |
cleanup: ; preds = %start | |
%4 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %4, { i8*, i32 }* %personalityslot | |
br label %bb3 | |
} | |
; core::ptr::drop_in_place | |
; Function Attrs: uwtable | |
define internal void @_ZN4core3ptr13drop_in_place17hdd3f52cff5540d7aE({ %"alloc::string::String", [0 x i8], i32, [4 x i8] }*) unnamed_addr #1 { | |
start: | |
%1 = getelementptr inbounds { %"alloc::string::String", [0 x i8], i32, [4 x i8] }, { %"alloc::string::String", [0 x i8], i32, [4 x i8] }* %0, i32 0, i32 0 | |
; call core::ptr::drop_in_place | |
call void @_ZN4core3ptr13drop_in_place17heacac3ea7654a012E(%"alloc::string::String"* %1) | |
br label %bb1 | |
bb1: ; preds = %start | |
ret void | |
} | |
; core::ptr::drop_in_place | |
; Function Attrs: uwtable | |
define internal void @_ZN4core3ptr13drop_in_place17heacac3ea7654a012E(%"alloc::string::String"*) unnamed_addr #1 { | |
start: | |
%1 = getelementptr inbounds %"alloc::string::String", %"alloc::string::String"* %0, i32 0, i32 0 | |
; call core::ptr::drop_in_place | |
call void @_ZN4core3ptr13drop_in_place17hd7240e5eeb07333fE(%"alloc::vec::Vec<u8>"* %1) | |
br label %bb1 | |
bb1: ; preds = %start | |
ret void | |
} | |
; core::ptr::drop_in_place | |
; Function Attrs: uwtable | |
define internal void @_ZN4core3ptr13drop_in_place17hfa906e9d21f1a35bE(%"std::collections::hash::table::RawTable<alloc::string::String, u32>"*) unnamed_addr #1 { | |
start: | |
; call <std::collections::hash::table::RawTable<K, V> as core::ops::drop::Drop>::drop | |
call void @"_ZN99_$LT$std..collections..hash..table..RawTable$LT$K$C$$u20$V$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hcc08b5b1fc136ef3E"(%"std::collections::hash::table::RawTable<alloc::string::String, u32>"* dereferenceable(24) %0) | |
br label %bb1 | |
bb1: ; preds = %start | |
ret void | |
} | |
; core::ptr::<impl *mut T>::offset | |
; Function Attrs: inlinehint uwtable | |
define internal i64* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$6offset17h20799c0ba09c4a4fE"(i64*, i64) unnamed_addr #0 { | |
start: | |
%tmp_ret = alloca i64* | |
%2 = getelementptr inbounds i64, i64* %0, i64 %1 | |
store i64* %2, i64** %tmp_ret | |
%3 = load i64*, i64** %tmp_ret | |
br label %bb1 | |
bb1: ; preds = %start | |
ret i64* %3 | |
} | |
; core::ptr::<impl *mut T>::offset | |
; Function Attrs: inlinehint uwtable | |
define internal i8* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$6offset17h506e4888fd6ad711E"(i8*, i64) unnamed_addr #0 { | |
start: | |
%tmp_ret = alloca i8* | |
%2 = getelementptr inbounds i8, i8* %0, i64 %1 | |
store i8* %2, i8** %tmp_ret | |
%3 = load i8*, i8** %tmp_ret | |
br label %bb1 | |
bb1: ; preds = %start | |
ret i8* %3 | |
} | |
; core::ptr::<impl *mut T>::is_null | |
; Function Attrs: inlinehint uwtable | |
define internal zeroext i1 @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17h57b63dfcc98eb1b4E"(i8*) unnamed_addr #0 { | |
start: | |
; call core::ptr::null_mut | |
%1 = call i8* @_ZN4core3ptr8null_mut17h93520ebd198118e1E() | |
br label %bb1 | |
bb1: ; preds = %start | |
%2 = icmp eq i8* %0, %1 | |
ret i1 %2 | |
} | |
; core::ptr::<impl *const T>::offset | |
; Function Attrs: inlinehint uwtable | |
define internal { %"alloc::string::String", [0 x i8], i32, [4 x i8] }* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$6offset17h7aa03b74dbcf1a40E"({ %"alloc::string::String", [0 x i8], i32, [4 x i8] }*, i64) unnamed_addr #0 { | |
start: | |
%tmp_ret = alloca { %"alloc::string::String", [0 x i8], i32, [4 x i8] }* | |
%2 = getelementptr inbounds { %"alloc::string::String", [0 x i8], i32, [4 x i8] }, { %"alloc::string::String", [0 x i8], i32, [4 x i8] }* %0, i64 %1 | |
store { %"alloc::string::String", [0 x i8], i32, [4 x i8] }* %2, { %"alloc::string::String", [0 x i8], i32, [4 x i8] }** %tmp_ret | |
%3 = load { %"alloc::string::String", [0 x i8], i32, [4 x i8] }*, { %"alloc::string::String", [0 x i8], i32, [4 x i8] }** %tmp_ret | |
br label %bb1 | |
bb1: ; preds = %start | |
ret { %"alloc::string::String", [0 x i8], i32, [4 x i8] }* %3 | |
} | |
; core::ptr::null_mut | |
; Function Attrs: inlinehint uwtable | |
define internal i8* @_ZN4core3ptr8null_mut17h93520ebd198118e1E() unnamed_addr #0 { | |
start: | |
ret i8* null | |
} | |
; core::slice::from_raw_parts_mut | |
; Function Attrs: inlinehint uwtable | |
define internal { i8*, i64 } @_ZN4core5slice18from_raw_parts_mut17h8443cc387c96e0feE(i8*, i64) unnamed_addr #0 { | |
start: | |
%transmute_temp = alloca { i8*, i64 } | |
%_6 = alloca %"core::slice::Repr<u8>" | |
%2 = getelementptr inbounds %"core::slice::Repr<u8>", %"core::slice::Repr<u8>"* %_6, i32 0, i32 0 | |
store i8* %0, i8** %2 | |
%3 = getelementptr inbounds %"core::slice::Repr<u8>", %"core::slice::Repr<u8>"* %_6, i32 0, i32 2 | |
store i64 %1, i64* %3 | |
%4 = getelementptr inbounds %"core::slice::Repr<u8>", %"core::slice::Repr<u8>"* %_6, i32 0, i32 0 | |
%5 = getelementptr inbounds %"core::slice::Repr<u8>", %"core::slice::Repr<u8>"* %_6, i32 0, i32 2 | |
%6 = load i8*, i8** %4 | |
%7 = load i64, i64* %5 | |
%8 = bitcast { i8*, i64 }* %transmute_temp to %"core::slice::Repr<u8>"* | |
%9 = getelementptr inbounds %"core::slice::Repr<u8>", %"core::slice::Repr<u8>"* %8, i32 0, i32 0 | |
store i8* %6, i8** %9 | |
%10 = getelementptr inbounds %"core::slice::Repr<u8>", %"core::slice::Repr<u8>"* %8, i32 0, i32 2 | |
store i64 %7, i64* %10 | |
%11 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %transmute_temp, i32 0, i32 0 | |
%12 = load i8*, i8** %11, !nonnull !5 | |
%13 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %transmute_temp, i32 0, i32 1 | |
%14 = load i64, i64* %13 | |
br label %bb1 | |
bb1: ; preds = %start | |
%15 = insertvalue { i8*, i64 } undef, i8* %12, 0 | |
%16 = insertvalue { i8*, i64 } %15, i64 %14, 1 | |
ret { i8*, i64 } %16 | |
} | |
; alloc::heap::deallocate | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN5alloc4heap10deallocate17h0714573883fe8c03E(i8*, i64, i64) unnamed_addr #0 { | |
start: | |
call void @__rust_deallocate(i8* %0, i64 %1, i64 %2) | |
br label %bb1 | |
bb1: ; preds = %start | |
ret void | |
} | |
; alloc::heap::exchange_malloc | |
; Function Attrs: inlinehint uwtable | |
define internal i8* @_ZN5alloc4heap15exchange_malloc17h14d65bf0926286feE(i64, i64) unnamed_addr #0 { | |
start: | |
%_0 = alloca i8* | |
%2 = icmp eq i64 %0, 0 | |
br i1 %2, label %bb1, label %bb2 | |
bb1: ; preds = %start | |
%3 = inttoptr i64 %1 to i8* | |
store i8* %3, i8** %_0 | |
br label %bb7 | |
bb2: ; preds = %start | |
; call alloc::heap::allocate | |
%4 = call i8* @_ZN5alloc4heap8allocate17h095d31ab3d0c194dE(i64 %0, i64 %1) | |
br label %bb3 | |
bb3: ; preds = %bb2 | |
; call core::ptr::<impl *mut T>::is_null | |
%5 = call zeroext i1 @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17h57b63dfcc98eb1b4E"(i8* %4) | |
br label %bb4 | |
bb4: ; preds = %bb3 | |
br i1 %5, label %bb5, label %bb6 | |
bb5: ; preds = %bb4 | |
; call alloc::oom::oom | |
call void @_ZN5alloc3oom3oom17h187750829550d600E() | |
unreachable | |
bb6: ; preds = %bb4 | |
store i8* %4, i8** %_0 | |
br label %bb7 | |
bb7: ; preds = %bb6, %bb1 | |
%6 = load i8*, i8** %_0 | |
ret i8* %6 | |
} | |
; alloc::heap::allocate | |
; Function Attrs: inlinehint uwtable | |
define internal i8* @_ZN5alloc4heap8allocate17h095d31ab3d0c194dE(i64, i64) unnamed_addr #0 { | |
start: | |
br label %bb1 | |
bb1: ; preds = %start | |
%2 = call i8* @__rust_allocate(i64 %0, i64 %1) | |
br label %bb2 | |
bb2: ; preds = %bb1 | |
ret i8* %2 | |
} | |
; alloc::allocator::size_align | |
; Function Attrs: uwtable | |
define internal void @_ZN5alloc9allocator10size_align17h88870de5c06db9aaE({ i64, [0 x i8], i64, [0 x i8] }* noalias nocapture sret dereferenceable(16)) unnamed_addr #1 { | |
start: | |
; call core::mem::size_of | |
%1 = call i64 @_ZN4core3mem7size_of17hf23eed341ba9caafE() | |
br label %bb1 | |
bb1: ; preds = %start | |
; call core::mem::align_of | |
%2 = call i64 @_ZN4core3mem8align_of17heefba6edf2f0843dE() | |
br label %bb2 | |
bb2: ; preds = %bb1 | |
%3 = getelementptr inbounds { i64, [0 x i8], i64, [0 x i8] }, { i64, [0 x i8], i64, [0 x i8] }* %0, i32 0, i32 0 | |
store i64 %1, i64* %3 | |
%4 = getelementptr inbounds { i64, [0 x i8], i64, [0 x i8] }, { i64, [0 x i8], i64, [0 x i8] }* %0, i32 0, i32 2 | |
store i64 %2, i64* %4 | |
ret void | |
} | |
; alloc::allocator::Layout::new | |
; Function Attrs: uwtable | |
define internal void @_ZN5alloc9allocator6Layout3new17he027ae8e9b401019E(%"alloc::allocator::Layout"* noalias nocapture sret dereferenceable(16)) unnamed_addr #1 { | |
start: | |
%tmp_ret = alloca { i64, [0 x i8], i64, [0 x i8] } | |
%_4 = alloca %"core::option::Option<alloc::allocator::Layout>" | |
; call alloc::allocator::size_align | |
call void @_ZN5alloc9allocator10size_align17h88870de5c06db9aaE({ i64, [0 x i8], i64, [0 x i8] }* noalias nocapture sret dereferenceable(16) %tmp_ret) | |
%1 = getelementptr inbounds { i64, [0 x i8], i64, [0 x i8] }, { i64, [0 x i8], i64, [0 x i8] }* %tmp_ret, i32 0, i32 0 | |
%2 = getelementptr inbounds { i64, [0 x i8], i64, [0 x i8] }, { i64, [0 x i8], i64, [0 x i8] }* %tmp_ret, i32 0, i32 2 | |
%3 = load i64, i64* %1 | |
%4 = load i64, i64* %2 | |
br label %bb1 | |
bb1: ; preds = %start | |
; call alloc::allocator::Layout::from_size_align | |
call void @_ZN5alloc9allocator6Layout15from_size_align17h6fb8443c82986f36E(%"core::option::Option<alloc::allocator::Layout>"* noalias nocapture sret dereferenceable(24) %_4, i64 %3, i64 %4) | |
br label %bb2 | |
bb2: ; preds = %bb1 | |
; call <core::option::Option<T>>::unwrap | |
call void @"_ZN38_$LT$core..option..Option$LT$T$GT$$GT$6unwrap17h4c2fde4ea85cdcd6E"(%"alloc::allocator::Layout"* noalias nocapture sret dereferenceable(16) %0, %"core::option::Option<alloc::allocator::Layout>"* noalias nocapture dereferenceable(24) %_4) | |
br label %bb3 | |
bb3: ; preds = %bb2 | |
ret void | |
} | |
; <alloc::vec::Vec<T> as core::ops::drop::Drop>::drop | |
; Function Attrs: uwtable | |
define internal void @"_ZN66_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha866afff06ba2767E"(%"alloc::vec::Vec<u8>"* dereferenceable(24)) unnamed_addr #1 { | |
start: | |
; call <alloc::vec::Vec<T> as core::ops::index::IndexMut<core::ops::range::RangeFull>>::index_mut | |
%1 = call { i8*, i64 } @"_ZN106_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..index..IndexMut$LT$core..ops..range..RangeFull$GT$$GT$9index_mut17hc7794058ffa41e1dE"(%"alloc::vec::Vec<u8>"* dereferenceable(24) %0) | |
%2 = extractvalue { i8*, i64 } %1, 0 | |
%3 = extractvalue { i8*, i64 } %1, 1 | |
br label %bb1 | |
bb1: ; preds = %start | |
br label %bb2 | |
bb2: ; preds = %bb1 | |
ret void | |
} | |
; <std::collections::hash::table::RawTable<K, V>>::raw_bucket_at | |
; Function Attrs: uwtable | |
define internal void @"_ZN66_$LT$std..collections..hash..table..RawTable$LT$K$C$$u20$V$GT$$GT$13raw_bucket_at17hb26e10a7c1cb90dfE"(%"std::collections::hash::table::RawBucket<alloc::string::String, u32>"* noalias nocapture sret dereferenceable(24), %"std::collections::hash::table::RawTable<alloc::string::String, u32>"* noalias readonly dereferenceable(24), i64) unnamed_addr #1 { | |
start: | |
%_15 = alloca { i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] } | |
; call <std::collections::hash::table::RawTable<K, V>>::capacity | |
%3 = call i64 @"_ZN66_$LT$std..collections..hash..table..RawTable$LT$K$C$$u20$V$GT$$GT$8capacity17h8fbd4d9c4bcb2abeE"(%"std::collections::hash::table::RawTable<alloc::string::String, u32>"* noalias readonly dereferenceable(24) %1) | |
br label %bb1 | |
bb1: ; preds = %start | |
; call core::mem::size_of | |
%4 = call i64 @_ZN4core3mem7size_of17hf487c6f8f8065bdbE() | |
br label %bb2 | |
bb2: ; preds = %bb1 | |
%5 = mul i64 %3, %4 | |
; call <std::collections::hash::table::RawTable<K, V>>::capacity | |
%6 = call i64 @"_ZN66_$LT$std..collections..hash..table..RawTable$LT$K$C$$u20$V$GT$$GT$8capacity17h8fbd4d9c4bcb2abeE"(%"std::collections::hash::table::RawTable<alloc::string::String, u32>"* noalias readonly dereferenceable(24) %1) | |
br label %bb3 | |
bb3: ; preds = %bb2 | |
; call core::mem::size_of | |
%7 = call i64 @_ZN4core3mem7size_of17h420c9d0a13642555E() | |
br label %bb4 | |
bb4: ; preds = %bb3 | |
%8 = mul i64 %6, %7 | |
; call core::mem::align_of | |
%9 = call i64 @_ZN4core3mem8align_of17hb1751fc426011276E() | |
br label %bb5 | |
bb5: ; preds = %bb4 | |
; call std::collections::hash::table::calculate_offsets | |
call void @_ZN3std11collections4hash5table17calculate_offsets17hd311671f7f37c2daE({ i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] }* noalias nocapture sret dereferenceable(24) %_15, i64 %5, i64 %8, i64 %9) | |
br label %bb6 | |
bb6: ; preds = %bb5 | |
%10 = getelementptr inbounds { i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] }, { i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] }* %_15, i32 0, i32 0 | |
%11 = load i64, i64* %10 | |
%12 = getelementptr inbounds { i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] }, { i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] }* %_15, i32 0, i32 4 | |
%13 = load i8, i8* %12, !range !1 | |
%14 = trunc i8 %13 to i1 | |
%15 = getelementptr inbounds %"std::collections::hash::table::RawTable<alloc::string::String, u32>", %"std::collections::hash::table::RawTable<alloc::string::String, u32>"* %1, i32 0, i32 4 | |
; call std::collections::hash::table::TaggedHashUintPtr::ptr | |
%16 = call i64* @_ZN3std11collections4hash5table17TaggedHashUintPtr3ptr17hceb3703b2b95ec3cE(%"std::collections::hash::table::TaggedHashUintPtr"* noalias readonly dereferenceable(8) %15) | |
br label %bb7 | |
bb7: ; preds = %bb6 | |
%17 = bitcast i64* %16 to i8* | |
%18 = bitcast i8* %17 to i64* | |
; call core::ptr::<impl *mut T>::offset | |
%19 = call i8* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$6offset17h506e4888fd6ad711E"(i8* %17, i64 %11) | |
br label %bb8 | |
bb8: ; preds = %bb7 | |
%20 = bitcast i8* %19 to { %"alloc::string::String", [0 x i8], i32, [4 x i8] }* | |
%21 = getelementptr inbounds %"std::collections::hash::table::RawBucket<alloc::string::String, u32>", %"std::collections::hash::table::RawBucket<alloc::string::String, u32>"* %0, i32 0, i32 0 | |
store i64* %18, i64** %21 | |
%22 = getelementptr inbounds %"std::collections::hash::table::RawBucket<alloc::string::String, u32>", %"std::collections::hash::table::RawBucket<alloc::string::String, u32>"* %0, i32 0, i32 2 | |
store { %"alloc::string::String", [0 x i8], i32, [4 x i8] }* %20, { %"alloc::string::String", [0 x i8], i32, [4 x i8] }** %22 | |
%23 = getelementptr inbounds %"std::collections::hash::table::RawBucket<alloc::string::String, u32>", %"std::collections::hash::table::RawBucket<alloc::string::String, u32>"* %0, i32 0, i32 4 | |
store i64 %2, i64* %23 | |
ret void | |
} | |
; <std::collections::hash::table::RawTable<K, V>>::rev_drop_buckets | |
; Function Attrs: uwtable | |
define internal void @"_ZN66_$LT$std..collections..hash..table..RawTable$LT$K$C$$u20$V$GT$$GT$16rev_drop_buckets17hfda5fa7549412ff8E"(%"std::collections::hash::table::RawTable<alloc::string::String, u32>"* dereferenceable(24)) unnamed_addr #1 { | |
start: | |
%_11 = alloca {} | |
%elems_left = alloca i64 | |
%raw = alloca %"std::collections::hash::table::RawBucket<alloc::string::String, u32>" | |
; call <std::collections::hash::table::RawTable<K, V>>::capacity | |
%1 = call i64 @"_ZN66_$LT$std..collections..hash..table..RawTable$LT$K$C$$u20$V$GT$$GT$8capacity17h8fbd4d9c4bcb2abeE"(%"std::collections::hash::table::RawTable<alloc::string::String, u32>"* noalias readonly dereferenceable(24) %0) | |
br label %bb1 | |
bb1: ; preds = %start | |
; call <std::collections::hash::table::RawTable<K, V>>::raw_bucket_at | |
call void @"_ZN66_$LT$std..collections..hash..table..RawTable$LT$K$C$$u20$V$GT$$GT$13raw_bucket_at17hb26e10a7c1cb90dfE"(%"std::collections::hash::table::RawBucket<alloc::string::String, u32>"* noalias nocapture sret dereferenceable(24) %raw, %"std::collections::hash::table::RawTable<alloc::string::String, u32>"* noalias readonly dereferenceable(24) %0, i64 %1) | |
br label %bb2 | |
bb2: ; preds = %bb1 | |
%2 = getelementptr inbounds %"std::collections::hash::table::RawTable<alloc::string::String, u32>", %"std::collections::hash::table::RawTable<alloc::string::String, u32>"* %0, i32 0, i32 2 | |
%3 = load i64, i64* %2 | |
store i64 %3, i64* %elems_left | |
br label %bb3 | |
bb3: ; preds = %bb11, %bb2 | |
%4 = load i64, i64* %elems_left | |
%5 = icmp ne i64 %4, 0 | |
br i1 %5, label %bb5, label %bb4 | |
bb4: ; preds = %bb3 | |
ret void | |
bb5: ; preds = %bb3 | |
%6 = getelementptr inbounds %"std::collections::hash::table::RawBucket<alloc::string::String, u32>", %"std::collections::hash::table::RawBucket<alloc::string::String, u32>"* %raw, i32 0, i32 4 | |
%7 = getelementptr inbounds %"std::collections::hash::table::RawBucket<alloc::string::String, u32>", %"std::collections::hash::table::RawBucket<alloc::string::String, u32>"* %raw, i32 0, i32 4 | |
%8 = load i64, i64* %7 | |
%9 = sub i64 %8, 1 | |
store i64 %9, i64* %6 | |
; call <std::collections::hash::table::RawBucket<K, V>>::hash | |
%10 = call i64* @"_ZN67_$LT$std..collections..hash..table..RawBucket$LT$K$C$$u20$V$GT$$GT$4hash17h82bc43f6705767cfE"(%"std::collections::hash::table::RawBucket<alloc::string::String, u32>"* noalias readonly dereferenceable(24) %raw) | |
br label %bb6 | |
bb6: ; preds = %bb5 | |
%11 = load i64, i64* %10 | |
%12 = icmp ne i64 %11, 0 | |
br i1 %12, label %bb7, label %bb8 | |
bb7: ; preds = %bb6 | |
%13 = load i64, i64* %elems_left | |
%14 = sub i64 %13, 1 | |
store i64 %14, i64* %elems_left | |
; call <std::collections::hash::table::RawBucket<K, V>>::pair | |
%15 = call { %"alloc::string::String", [0 x i8], i32, [4 x i8] }* @"_ZN67_$LT$std..collections..hash..table..RawBucket$LT$K$C$$u20$V$GT$$GT$4pair17hfeb33fed92bb1a57E"(%"std::collections::hash::table::RawBucket<alloc::string::String, u32>"* noalias readonly dereferenceable(24) %raw) | |
br label %bb9 | |
bb8: ; preds = %bb6 | |
br label %bb11 | |
bb9: ; preds = %bb7 | |
; call core::ptr::drop_in_place | |
call void @_ZN4core3ptr13drop_in_place17hdd3f52cff5540d7aE({ %"alloc::string::String", [0 x i8], i32, [4 x i8] }* %15) | |
br label %bb10 | |
bb10: ; preds = %bb9 | |
br label %bb11 | |
bb11: ; preds = %bb8, %bb10 | |
br label %bb3 | |
} | |
; <std::collections::hash::table::RawTable<K, V>>::size | |
; Function Attrs: uwtable | |
define internal i64 @"_ZN66_$LT$std..collections..hash..table..RawTable$LT$K$C$$u20$V$GT$$GT$4size17h2a2c7a1e8ad7d18bE"(%"std::collections::hash::table::RawTable<alloc::string::String, u32>"* noalias readonly dereferenceable(24)) unnamed_addr #1 { | |
start: | |
%1 = getelementptr inbounds %"std::collections::hash::table::RawTable<alloc::string::String, u32>", %"std::collections::hash::table::RawTable<alloc::string::String, u32>"* %0, i32 0, i32 2 | |
%2 = load i64, i64* %1 | |
ret i64 %2 | |
} | |
; <std::collections::hash::table::RawTable<K, V>>::capacity | |
; Function Attrs: uwtable | |
define internal i64 @"_ZN66_$LT$std..collections..hash..table..RawTable$LT$K$C$$u20$V$GT$$GT$8capacity17h8fbd4d9c4bcb2abeE"(%"std::collections::hash::table::RawTable<alloc::string::String, u32>"* noalias readonly dereferenceable(24)) unnamed_addr #1 { | |
start: | |
%1 = getelementptr inbounds %"std::collections::hash::table::RawTable<alloc::string::String, u32>", %"std::collections::hash::table::RawTable<alloc::string::String, u32>"* %0, i32 0, i32 0 | |
%2 = load i64, i64* %1 | |
; call core::num::<impl usize>::wrapping_add | |
%3 = call i64 @"_ZN4core3num23_$LT$impl$u20$usize$GT$12wrapping_add17h60cc7bcd2228b7e8E"(i64 %2, i64 1) | |
br label %bb1 | |
bb1: ; preds = %start | |
ret i64 %3 | |
} | |
; <std::collections::hash::table::RawBucket<K, V>>::hash | |
; Function Attrs: uwtable | |
define internal i64* @"_ZN67_$LT$std..collections..hash..table..RawBucket$LT$K$C$$u20$V$GT$$GT$4hash17h82bc43f6705767cfE"(%"std::collections::hash::table::RawBucket<alloc::string::String, u32>"* noalias readonly dereferenceable(24)) unnamed_addr #1 { | |
start: | |
%1 = getelementptr inbounds %"std::collections::hash::table::RawBucket<alloc::string::String, u32>", %"std::collections::hash::table::RawBucket<alloc::string::String, u32>"* %0, i32 0, i32 0 | |
%2 = load i64*, i64** %1 | |
%3 = getelementptr inbounds %"std::collections::hash::table::RawBucket<alloc::string::String, u32>", %"std::collections::hash::table::RawBucket<alloc::string::String, u32>"* %0, i32 0, i32 4 | |
%4 = load i64, i64* %3 | |
; call core::ptr::<impl *mut T>::offset | |
%5 = call i64* @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$6offset17h20799c0ba09c4a4fE"(i64* %2, i64 %4) | |
br label %bb1 | |
bb1: ; preds = %start | |
ret i64* %5 | |
} | |
; <std::collections::hash::table::RawBucket<K, V>>::pair | |
; Function Attrs: uwtable | |
define internal { %"alloc::string::String", [0 x i8], i32, [4 x i8] }* @"_ZN67_$LT$std..collections..hash..table..RawBucket$LT$K$C$$u20$V$GT$$GT$4pair17hfeb33fed92bb1a57E"(%"std::collections::hash::table::RawBucket<alloc::string::String, u32>"* noalias readonly dereferenceable(24)) unnamed_addr #1 { | |
start: | |
%1 = getelementptr inbounds %"std::collections::hash::table::RawBucket<alloc::string::String, u32>", %"std::collections::hash::table::RawBucket<alloc::string::String, u32>"* %0, i32 0, i32 2 | |
%2 = load { %"alloc::string::String", [0 x i8], i32, [4 x i8] }*, { %"alloc::string::String", [0 x i8], i32, [4 x i8] }** %1 | |
%3 = getelementptr inbounds %"std::collections::hash::table::RawBucket<alloc::string::String, u32>", %"std::collections::hash::table::RawBucket<alloc::string::String, u32>"* %0, i32 0, i32 4 | |
%4 = load i64, i64* %3 | |
; call core::ptr::<impl *const T>::offset | |
%5 = call { %"alloc::string::String", [0 x i8], i32, [4 x i8] }* @"_ZN4core3ptr33_$LT$impl$u20$$BP$const$u20$T$GT$6offset17h7aa03b74dbcf1a40E"({ %"alloc::string::String", [0 x i8], i32, [4 x i8] }* %2, i64 %4) | |
br label %bb1 | |
bb1: ; preds = %start | |
ret { %"alloc::string::String", [0 x i8], i32, [4 x i8] }* %5 | |
} | |
; <alloc::vec::Vec<T> as core::ops::deref::DerefMut>::deref_mut | |
; Function Attrs: uwtable | |
define internal { i8*, i64 } @"_ZN71_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$9deref_mut17h68d01c2d9708665bE"(%"alloc::vec::Vec<u8>"* dereferenceable(24)) unnamed_addr #1 { | |
start: | |
%1 = getelementptr inbounds %"alloc::vec::Vec<u8>", %"alloc::vec::Vec<u8>"* %0, i32 0, i32 0 | |
; call <alloc::raw_vec::RawVec<T, A>>::ptr | |
%2 = call i8* @"_ZN49_$LT$alloc..raw_vec..RawVec$LT$T$C$$u20$A$GT$$GT$3ptr17hfade4d736973f114E"(%"alloc::raw_vec::RawVec<u8, alloc::heap::HeapAlloc>"* noalias readonly dereferenceable(16) %1) | |
br label %bb1 | |
bb1: ; preds = %start | |
; call core::ptr::<impl *mut T>::is_null | |
%3 = call zeroext i1 @"_ZN4core3ptr31_$LT$impl$u20$$BP$mut$u20$T$GT$7is_null17h57b63dfcc98eb1b4E"(i8* %2) | |
br label %bb2 | |
bb2: ; preds = %bb1 | |
%4 = xor i1 %3, true | |
call void @llvm.assume(i1 %4) | |
br label %bb3 | |
bb3: ; preds = %bb2 | |
%5 = getelementptr inbounds %"alloc::vec::Vec<u8>", %"alloc::vec::Vec<u8>"* %0, i32 0, i32 2 | |
%6 = load i64, i64* %5 | |
; call core::slice::from_raw_parts_mut | |
%7 = call { i8*, i64 } @_ZN4core5slice18from_raw_parts_mut17h8443cc387c96e0feE(i8* %2, i64 %6) | |
%8 = extractvalue { i8*, i64 } %7, 0 | |
%9 = extractvalue { i8*, i64 } %7, 1 | |
br label %bb4 | |
bb4: ; preds = %bb3 | |
%10 = insertvalue { i8*, i64 } undef, i8* %8, 0 | |
%11 = insertvalue { i8*, i64 } %10, i64 %9, 1 | |
ret { i8*, i64 } %11 | |
} | |
; <std::collections::hash::map::HashMap<K, V, S>>::len | |
; Function Attrs: uwtable | |
define internal i64 @"_ZN72_$LT$std..collections..hash..map..HashMap$LT$K$C$$u20$V$C$$u20$S$GT$$GT$3len17h4c188084a0edf277E"(%"std::collections::hash::map::HashMap<alloc::string::String, u32, std::collections::hash::map::RandomState>"* noalias readonly dereferenceable(40)) unnamed_addr #1 { | |
start: | |
%1 = getelementptr inbounds %"std::collections::hash::map::HashMap<alloc::string::String, u32, std::collections::hash::map::RandomState>", %"std::collections::hash::map::HashMap<alloc::string::String, u32, std::collections::hash::map::RandomState>"* %0, i32 0, i32 2 | |
; call <std::collections::hash::table::RawTable<K, V>>::size | |
%2 = call i64 @"_ZN66_$LT$std..collections..hash..table..RawTable$LT$K$C$$u20$V$GT$$GT$4size17h2a2c7a1e8ad7d18bE"(%"std::collections::hash::table::RawTable<alloc::string::String, u32>"* noalias readonly dereferenceable(24) %1) | |
br label %bb1 | |
bb1: ; preds = %start | |
ret i64 %2 | |
} | |
; <alloc::raw_vec::RawVec<T, A> as core::ops::drop::Drop>::drop | |
; Function Attrs: uwtable | |
define internal void @"_ZN82_$LT$alloc..raw_vec..RawVec$LT$T$C$$u20$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hcdf2b0db6a195e21E"(%"alloc::raw_vec::RawVec<u8, alloc::heap::HeapAlloc>"* dereferenceable(16)) unnamed_addr #1 { | |
start: | |
; call <alloc::raw_vec::RawVec<T, A>>::dealloc_buffer | |
call void @"_ZN49_$LT$alloc..raw_vec..RawVec$LT$T$C$$u20$A$GT$$GT$14dealloc_buffer17h9c6f91926ee3e0a6E"(%"alloc::raw_vec::RawVec<u8, alloc::heap::HeapAlloc>"* dereferenceable(16) %0) | |
br label %bb1 | |
bb1: ; preds = %start | |
ret void | |
} | |
; <std::collections::hash::table::RawTable<K, V> as core::ops::drop::Drop>::drop | |
; Function Attrs: uwtable | |
define internal void @"_ZN99_$LT$std..collections..hash..table..RawTable$LT$K$C$$u20$V$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hcc08b5b1fc136ef3E"(%"std::collections::hash::table::RawTable<alloc::string::String, u32>"* dereferenceable(24)) unnamed_addr #1 { | |
start: | |
%_22 = alloca { i64, [0 x i8], i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] } | |
%_7 = alloca {} | |
%_0 = alloca {} | |
; call <std::collections::hash::table::RawTable<K, V>>::capacity | |
%1 = call i64 @"_ZN66_$LT$std..collections..hash..table..RawTable$LT$K$C$$u20$V$GT$$GT$8capacity17h8fbd4d9c4bcb2abeE"(%"std::collections::hash::table::RawTable<alloc::string::String, u32>"* noalias readonly dereferenceable(24) %0) | |
br label %bb1 | |
bb1: ; preds = %start | |
%2 = icmp eq i64 %1, 0 | |
br i1 %2, label %bb2, label %bb3 | |
bb2: ; preds = %bb1 | |
br label %bb4 | |
bb3: ; preds = %bb1 | |
; call core::mem::needs_drop | |
%3 = call zeroext i1 @_ZN4core3mem10needs_drop17h582fdac1a5b9cba1E() | |
br label %bb5 | |
bb4: ; preds = %bb18, %bb2 | |
ret void | |
bb5: ; preds = %bb3 | |
br i1 %3, label %bb6, label %bb7 | |
bb6: ; preds = %bb5 | |
; call <std::collections::hash::table::RawTable<K, V>>::rev_drop_buckets | |
call void @"_ZN66_$LT$std..collections..hash..table..RawTable$LT$K$C$$u20$V$GT$$GT$16rev_drop_buckets17hfda5fa7549412ff8E"(%"std::collections::hash::table::RawTable<alloc::string::String, u32>"* dereferenceable(24) %0) | |
br label %bb8 | |
bb7: ; preds = %bb5 | |
br label %bb9 | |
bb8: ; preds = %bb6 | |
br label %bb9 | |
bb9: ; preds = %bb7, %bb8 | |
; call <std::collections::hash::table::RawTable<K, V>>::capacity | |
%4 = call i64 @"_ZN66_$LT$std..collections..hash..table..RawTable$LT$K$C$$u20$V$GT$$GT$8capacity17h8fbd4d9c4bcb2abeE"(%"std::collections::hash::table::RawTable<alloc::string::String, u32>"* noalias readonly dereferenceable(24) %0) | |
br label %bb10 | |
bb10: ; preds = %bb9 | |
; call core::mem::size_of | |
%5 = call i64 @_ZN4core3mem7size_of17hf487c6f8f8065bdbE() | |
br label %bb11 | |
bb11: ; preds = %bb10 | |
%6 = mul i64 %4, %5 | |
; call <std::collections::hash::table::RawTable<K, V>>::capacity | |
%7 = call i64 @"_ZN66_$LT$std..collections..hash..table..RawTable$LT$K$C$$u20$V$GT$$GT$8capacity17h8fbd4d9c4bcb2abeE"(%"std::collections::hash::table::RawTable<alloc::string::String, u32>"* noalias readonly dereferenceable(24) %0) | |
br label %bb12 | |
bb12: ; preds = %bb11 | |
; call core::mem::size_of | |
%8 = call i64 @_ZN4core3mem7size_of17h420c9d0a13642555E() | |
br label %bb13 | |
bb13: ; preds = %bb12 | |
%9 = mul i64 %7, %8 | |
; call core::mem::align_of | |
%10 = call i64 @_ZN4core3mem8align_of17h7a7ea9d0cdbbfca9E() | |
br label %bb14 | |
bb14: ; preds = %bb13 | |
; call core::mem::align_of | |
%11 = call i64 @_ZN4core3mem8align_of17hb1751fc426011276E() | |
br label %bb15 | |
bb15: ; preds = %bb14 | |
; call std::collections::hash::table::calculate_allocation | |
call void @_ZN3std11collections4hash5table20calculate_allocation17ha870f8b3cc580232E({ i64, [0 x i8], i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] }* noalias nocapture sret dereferenceable(32) %_22, i64 %6, i64 %10, i64 %9, i64 %11) | |
br label %bb16 | |
bb16: ; preds = %bb15 | |
%12 = getelementptr inbounds { i64, [0 x i8], i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] }, { i64, [0 x i8], i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] }* %_22, i32 0, i32 0 | |
%13 = load i64, i64* %12 | |
%14 = getelementptr inbounds { i64, [0 x i8], i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] }, { i64, [0 x i8], i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] }* %_22, i32 0, i32 4 | |
%15 = load i64, i64* %14 | |
%16 = getelementptr inbounds { i64, [0 x i8], i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] }, { i64, [0 x i8], i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] }* %_22, i32 0, i32 6 | |
%17 = load i8, i8* %16, !range !1 | |
%18 = trunc i8 %17 to i1 | |
%19 = getelementptr inbounds %"std::collections::hash::table::RawTable<alloc::string::String, u32>", %"std::collections::hash::table::RawTable<alloc::string::String, u32>"* %0, i32 0, i32 4 | |
; call std::collections::hash::table::TaggedHashUintPtr::ptr | |
%20 = call i64* @_ZN3std11collections4hash5table17TaggedHashUintPtr3ptr17hceb3703b2b95ec3cE(%"std::collections::hash::table::TaggedHashUintPtr"* noalias readonly dereferenceable(8) %19) | |
br label %bb17 | |
bb17: ; preds = %bb16 | |
%21 = bitcast i64* %20 to i8* | |
; call alloc::heap::deallocate | |
call void @_ZN5alloc4heap10deallocate17h0714573883fe8c03E(i8* %21, i64 %15, i64 %13) | |
br label %bb18 | |
bb18: ; preds = %bb17 | |
br label %bb4 | |
} | |
; xx::foo | |
; Function Attrs: uwtable | |
define i64 @_ZN2xx3foo17h5bb2af9e7f8f07d4E(%"std::collections::hash::map::HashMap<alloc::string::String, u32, std::collections::hash::map::RandomState>"* noalias nocapture dereferenceable(40)) unnamed_addr #1 personality i32 (i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
start: | |
%personalityslot = alloca { i8*, i32 } | |
%h = alloca %"std::collections::hash::map::HashMap<alloc::string::String, u32, std::collections::hash::map::RandomState>" | |
%1 = bitcast %"std::collections::hash::map::HashMap<alloc::string::String, u32, std::collections::hash::map::RandomState>"* %0 to i8* | |
%2 = bitcast %"std::collections::hash::map::HashMap<alloc::string::String, u32, std::collections::hash::map::RandomState>"* %h to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %2, i8* %1, i64 40, i32 8, i1 false) | |
; invoke <std::collections::hash::map::HashMap<K, V, S>>::len | |
%3 = invoke i64 @"_ZN72_$LT$std..collections..hash..map..HashMap$LT$K$C$$u20$V$C$$u20$S$GT$$GT$3len17h4c188084a0edf277E"(%"std::collections::hash::map::HashMap<alloc::string::String, u32, std::collections::hash::map::RandomState>"* noalias readonly dereferenceable(40) %h) | |
to label %bb2 unwind label %cleanup | |
bb1: ; preds = %bb3 | |
%4 = load { i8*, i32 }, { i8*, i32 }* %personalityslot | |
resume { i8*, i32 } %4 | |
bb2: ; preds = %start | |
; call core::ptr::drop_in_place | |
call void @_ZN4core3ptr13drop_in_place17hc45b0ec2880cff63E(%"std::collections::hash::map::HashMap<alloc::string::String, u32, std::collections::hash::map::RandomState>"* %h) | |
br label %bb4 | |
bb3: ; preds = %cleanup | |
; call core::ptr::drop_in_place | |
call void @_ZN4core3ptr13drop_in_place17hc45b0ec2880cff63E(%"std::collections::hash::map::HashMap<alloc::string::String, u32, std::collections::hash::map::RandomState>"* %h) #9 | |
br label %bb1 | |
bb4: ; preds = %bb2 | |
ret i64 %3 | |
cleanup: ; preds = %start | |
%5 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %5, { i8*, i32 }* %personalityslot | |
br label %bb3 | |
} | |
; Function Attrs: argmemonly nounwind | |
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i32, i1) #3 | |
declare i32 @rust_eh_personality(i32, i32, i64, %"unwind::libunwind::_Unwind_Exception"*, %"unwind::libunwind::_Unwind_Context"*) unnamed_addr #4 | |
; core::panicking::panic | |
; Function Attrs: cold noinline noreturn | |
declare void @_ZN4core9panicking5panic17h62639c90155483f2E({ %str_slice, [0 x i8], %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(40)) unnamed_addr #5 | |
; std::panicking::rust_panic_with_hook | |
; Function Attrs: cold noinline noreturn | |
declare void @_ZN3std9panicking20rust_panic_with_hook17h070dbedc97871d0aE({}* noalias nonnull, {}* noalias nonnull readonly, { %str_slice, [0 x i8], i32, [4 x i8] }* noalias readonly dereferenceable(24)) unnamed_addr #5 | |
; alloc::allocator::Layout::repeat | |
declare void @_ZN5alloc9allocator6Layout6repeat17h552f5096c4e7899dE(%"core::option::Option<(alloc::allocator::Layout, usize)>"* noalias nocapture sret dereferenceable(32), %"alloc::allocator::Layout"* noalias readonly dereferenceable(16), i64) unnamed_addr #4 | |
; <alloc::heap::HeapAlloc as alloc::allocator::Alloc>::dealloc | |
declare void @"_ZN66_$LT$alloc..heap..HeapAlloc$u20$as$u20$alloc..allocator..Alloc$GT$7dealloc17h867ab70d434fced2E"(%"alloc::heap::HeapAlloc"*, i8*, %"alloc::allocator::Layout"* noalias nocapture dereferenceable(16)) unnamed_addr #4 | |
; Function Attrs: nounwind readnone | |
declare { i64, i1 } @llvm.uadd.with.overflow.i64(i64, i64) #6 | |
; Function Attrs: nounwind | |
declare void @__rust_deallocate(i8*, i64, i64) unnamed_addr #7 | |
; alloc::oom::oom | |
; Function Attrs: cold noinline noreturn | |
declare void @_ZN5alloc3oom3oom17h187750829550d600E() unnamed_addr #5 | |
; Function Attrs: nounwind | |
declare noalias i8* @__rust_allocate(i64, i64) unnamed_addr #7 | |
; alloc::allocator::Layout::from_size_align | |
declare void @_ZN5alloc9allocator6Layout15from_size_align17h6fb8443c82986f36E(%"core::option::Option<alloc::allocator::Layout>"* noalias nocapture sret dereferenceable(24), i64, i64) unnamed_addr #4 | |
; Function Attrs: nounwind | |
declare void @llvm.assume(i1) #8 | |
; std::collections::hash::table::calculate_allocation | |
declare void @_ZN3std11collections4hash5table20calculate_allocation17ha870f8b3cc580232E({ i64, [0 x i8], i64, [0 x i8], i64, [0 x i8], i8, [7 x i8] }* noalias nocapture sret dereferenceable(32), i64, i64, i64, i64) unnamed_addr #4 | |
attributes #0 = { inlinehint uwtable "no-frame-pointer-elim"="true" } | |
attributes #1 = { uwtable "no-frame-pointer-elim"="true" } | |
attributes #2 = { cold noinline noreturn uwtable "no-frame-pointer-elim"="true" } | |
attributes #3 = { argmemonly nounwind } | |
attributes #4 = { "no-frame-pointer-elim"="true" } | |
attributes #5 = { cold noinline noreturn "no-frame-pointer-elim"="true" } | |
attributes #6 = { nounwind readnone } | |
attributes #7 = { nounwind "no-frame-pointer-elim"="true" } | |
attributes #8 = { nounwind } | |
attributes #9 = { noinline } | |
!0 = !{i64 0, i64 2} | |
!1 = !{i8 0, i8 2} | |
!2 = !{!3} | |
!3 = distinct !{!3, !4, !"_ZN35_$LT$alloc..boxed..Box$LT$T$GT$$GT$3new17h5ad0927f81583286E: argument 0"} | |
!4 = distinct !{!4, !"_ZN35_$LT$alloc..boxed..Box$LT$T$GT$$GT$3new17h5ad0927f81583286E"} | |
!5 = !{} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use std::collections::HashMap; | |
pub fn foo(h: HashMap<String, u32>) -> usize { | |
h.len() | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment