Created
February 15, 2016 18:02
-
-
Save arielb1/14cdf1154e0937f84b52 to your computer and use it in GitHub Desktop.
This file contains 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 = 'spawn_example.0.rs' | |
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" | |
target triple = "x86_64-unknown-linux-gnu" | |
%str_slice = type { i8*, i64 } | |
%"1.core::marker::PhantomData<&'static mut u8>" = type {} | |
%"1.core::fmt::Formatter" = type { i32, i32, i8, %"1.core::option::Option<usize>", %"1.core::option::Option<usize>", { i8*, void (i8*)** }, %"1.core::slice::Iter<core::fmt::ArgumentV1>", { %"1.core::fmt::ArgumentV1"*, i64 } } | |
%"1.core::option::Option<usize>" = type { i64, [0 x i64], [1 x i64] } | |
%"1.core::slice::Iter<core::fmt::ArgumentV1>" = type { %"1.core::fmt::ArgumentV1"*, %"1.core::fmt::ArgumentV1"*, %"1.core::marker::PhantomData<&'static core::fmt::ArgumentV1>" } | |
%"1.core::fmt::ArgumentV1" = type { %"1.core::fmt::Void"*, i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)* } | |
%"1.core::fmt::Void" = type {} | |
%"1.core::marker::PhantomData<&'static core::fmt::ArgumentV1>" = type {} | |
%"2.std::io::error::Error" = type { %"2.std::io::error::Repr" } | |
%"2.std::io::error::Repr" = type { i8, [7 x i8], [1 x i64] } | |
%"1.core::marker::PhantomData<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" = type {} | |
%closure = type {} | |
%"2.std::thread::JoinHandle<i32>" = type { %"2.std::thread::JoinInner<i32>" } | |
%"2.std::thread::JoinInner<i32>" = type { %"1.core::option::Option<std::sys::thread::Thread>", %"2.std::thread::Thread", %"2.std::thread::Packet<i32>" } | |
%"1.core::option::Option<std::sys::thread::Thread>" = type { i64, [0 x i64], [2 x i64] } | |
%"2.std::thread::Thread" = type { %"5.alloc::arc::Arc<std::thread::Inner>" } | |
%"5.alloc::arc::Arc<std::thread::Inner>" = type { %"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>" } | |
%"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>" = type { %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>", %"1.core::marker::PhantomData<alloc::arc::ArcInner<std::thread::Inner>>" } | |
%"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>" = type { %"5.alloc::arc::ArcInner<std::thread::Inner>"* } | |
%"5.alloc::arc::ArcInner<std::thread::Inner>" = type { %"1.core::sync::atomic::AtomicUsize", %"1.core::sync::atomic::AtomicUsize", %"2.std::thread::Inner" } | |
%"1.core::sync::atomic::AtomicUsize" = type { %"1.core::cell::UnsafeCell<usize>" } | |
%"1.core::cell::UnsafeCell<usize>" = type { i64 } | |
%"2.std::thread::Inner" = type { %"1.core::option::Option<collections::string::String>", %"2.std::sync::mutex::Mutex<bool>", %"2.std::sync::condvar::Condvar" } | |
%"1.core::option::Option<collections::string::String>" = type { %"3.collections::string::String" } | |
%"3.collections::string::String" = type { %"3.collections::vec::Vec<u8>" } | |
%"3.collections::vec::Vec<u8>" = type { %"5.alloc::raw_vec::RawVec<u8>", i64 } | |
%"5.alloc::raw_vec::RawVec<u8>" = type { %"1.core::ptr::Unique<u8>", i64 } | |
%"1.core::ptr::Unique<u8>" = type { %"1.core::nonzero::NonZero<*const u8>", %"1.core::marker::PhantomData<u8>" } | |
%"1.core::nonzero::NonZero<*const u8>" = type { i8* } | |
%"1.core::marker::PhantomData<u8>" = type {} | |
%"2.std::sync::mutex::Mutex<bool>" = type { %"2.std::sync::mutex::StaticMutex"*, %"1.core::cell::UnsafeCell<bool>", i8 } | |
%"2.std::sync::mutex::StaticMutex" = type { %"2.std::sys_common::mutex::Mutex", %"2.std::sys_common::poison::Flag" } | |
%"2.std::sys_common::mutex::Mutex" = type { %"2.std::sys::mutex::Mutex" } | |
%"2.std::sys::mutex::Mutex" = type { %"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>" } | |
%"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>" = type { %"7.libc::unix::notbsd::linux::pthread_mutex_t" } | |
%"7.libc::unix::notbsd::linux::pthread_mutex_t" = type { [0 x i64], [40 x i8] } | |
%"2.std::sys_common::poison::Flag" = type { %"1.core::cell::Cell<bool>" } | |
%"1.core::cell::Cell<bool>" = type { %"1.core::cell::UnsafeCell<bool>" } | |
%"1.core::cell::UnsafeCell<bool>" = type { i8 } | |
%"2.std::sync::condvar::Condvar" = type { %"2.std::sync::condvar::StaticCondvar"*, i8 } | |
%"2.std::sync::condvar::StaticCondvar" = type { %"2.std::sys_common::condvar::Condvar", %"1.core::sync::atomic::AtomicUsize" } | |
%"2.std::sys_common::condvar::Condvar" = type { %"2.std::sys::condvar::Condvar" } | |
%"2.std::sys::condvar::Condvar" = type { %"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_cond_t>" } | |
%"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_cond_t>" = type { %"7.libc::unix::notbsd::linux::pthread_cond_t" } | |
%"7.libc::unix::notbsd::linux::pthread_cond_t" = type { [0 x i64], [48 x i8] } | |
%"1.core::marker::PhantomData<alloc::arc::ArcInner<std::thread::Inner>>" = type {} | |
%"2.std::thread::Packet<i32>" = type { %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" } | |
%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" = type { %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" } | |
%"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" = type { %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"1.core::marker::PhantomData<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" } | |
%"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" = type { %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* } | |
%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" = type { %"1.core::sync::atomic::AtomicUsize", %"1.core::sync::atomic::AtomicUsize", %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>" } | |
%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>" = type { %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>" } | |
%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>" = type { i64, [0 x i64], [3 x i64] } | |
%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" = type { i8, [7 x i8], [2 x i64] } | |
%"1.core::fmt::Arguments" = type { { %str_slice*, i64 }, %"1.core::option::Option<&'static [core::fmt::rt::v1::Argument]>", { %"1.core::fmt::ArgumentV1"*, i64 } } | |
%"1.core::option::Option<&'static [core::fmt::rt::v1::Argument]>" = type { { %"1.core::fmt::rt::v1::Argument"*, i64 } } | |
%"1.core::fmt::rt::v1::Argument" = type { %"1.core::fmt::rt::v1::Position", %"1.core::fmt::rt::v1::FormatSpec" } | |
%"1.core::fmt::rt::v1::Position" = type { i64, [0 x i64], [1 x i64] } | |
%"1.core::fmt::rt::v1::FormatSpec" = type { i32, i8, i32, %"1.core::fmt::rt::v1::Count", %"1.core::fmt::rt::v1::Count" } | |
%"1.core::fmt::rt::v1::Count" = type { i64, [0 x i64], [1 x i64] } | |
%"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>" = type { i64, [0 x i64], [5 x i64] } | |
%"2.std::thread::Builder" = type { %"1.core::option::Option<collections::string::String>", %"1.core::option::Option<usize>" } | |
%"2.std::sys::thread::Thread" = type { i64, i8 } | |
%"2.std::sys_common::libunwind::_Unwind_Exception" = type { i64, void (i32, %"2.std::sys_common::libunwind::_Unwind_Exception"*)*, [6 x i64] } | |
%"2.std::sys_common::libunwind::_Unwind_Context" = type {} | |
%"1.core::slice::IterMut<u8>" = type { i8*, i8*, %"1.core::marker::PhantomData<&'static mut u8>" } | |
%"1.core::raw::Slice<u8>" = type { i8*, i64 } | |
%"1.core::result::Result<(), core::fmt::Error>" = type { i8, [0 x i8], [0 x i8] } | |
%"2.std::io::error::Custom" = type { i8, { i8*, void (i8*)** } } | |
%closure.0 = type { %"2.std::thread::Thread", %closure, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" } | |
%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>" = type { i64, [0 x i64], [2 x i64] } | |
%"1.core::option::Option<&'static str>" = type { %str_slice } | |
%"1.core::option::Option<i32>" = type { i32, [0 x i32], [1 x i32] } | |
%"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>" = type { { i8*, void (i8*)** } } | |
%closure.1 = type { %closure, %"1.core::option::Option<i32>"* } | |
%closure.2 = type { %"1.core::option::Option<i32>" } | |
%"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" = type { %closure.1 } | |
%"2.std::sys::stack_overflow::Handler" = type { i8*, i8 } | |
@const4376 = internal unnamed_addr constant i8 29, align 1 | |
@const4377 = internal unnamed_addr constant i64 2097865012304223517, align 8 | |
@const4396 = internal unnamed_addr constant i64 1, align 8 | |
@const4397 = internal unnamed_addr constant i8 1, align 1 | |
@_ZN4sync6atomic5fence14_MSG_FILE_LINE20h9e0bce6065acf43cSdLE = external global { %str_slice, %str_slice, i32 } | |
@const4417 = internal unnamed_addr constant i8 2, align 1 | |
@const4479 = internal unnamed_addr constant i64 0, align 8 | |
@const4480 = internal unnamed_addr constant i8* inttoptr (i64 1 to i8*), align 8 | |
@const4599 = internal unnamed_addr constant i8* null, align 8 | |
@const4618 = internal unnamed_addr constant %"1.core::marker::PhantomData<&'static mut u8>" zeroinitializer, align 1 | |
@str4644 = internal constant [31 x i8] c"arithmetic operation overflowed" | |
@str4646 = internal constant [26 x i8] c"../src/liballoc/raw_vec.rs" | |
@panic_loc4647 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @str4644, i32 0, i32 0), i64 31 }, %str_slice { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @str4646, i32 0, i32 0), i64 26 }, i32 565 }, align 8 | |
@ref4667 = internal unnamed_addr constant i32 0, align 4 | |
@const4668 = internal unnamed_addr constant i32* @ref4667, align 8 | |
@const4678 = internal unnamed_addr constant { { i8*, i8* } } zeroinitializer, align 8 | |
@_ZN3sys5mutex5Mutex7destroy15__STATIC_FMTSTR20hb7403b0de171f7deLawE = external global { %str_slice*, i64 } | |
@const4680 = internal unnamed_addr constant i8 (i32**, %"1.core::fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt21h13815583691212233211E", align 8 | |
@_ZN3sys5mutex5Mutex7destroy10_FILE_LINE20hdceb746dfe68fc84kbwE = external global { %str_slice, i32 } | |
@_ZN6result13unwrap_failed15__STATIC_FMTSTR20hf92ae00c19516543Q5OE = external global { %str_slice*, i64 } | |
@const4726 = internal unnamed_addr constant i8 (%str_slice*, %"1.core::fmt::Formatter"*)* @"_ZN3fmt25_$RF$$u27$a$u20$T.Display3fmt20h1949050574023800080E", align 8 | |
@const4746 = internal unnamed_addr constant i8 (%"2.std::io::error::Error"*, %"1.core::fmt::Formatter"*)* @_ZN2io5error24Error...core..fmt..Debug3fmt20h60fd01dad14aa91fkhgE, align 8 | |
@_ZN6result13unwrap_failed10_FILE_LINE20h4a56c969ed2d4d85A5OE = external global { %str_slice, i32 } | |
@str4747 = internal constant [43 x i8] c"called `Result::unwrap()` on an `Err` value" | |
@const4748 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str4747, i32 0, i32 0), i64 43 }, align 8 | |
@const4791 = internal unnamed_addr constant i8 0, align 1 | |
@const4794 = internal unnamed_addr constant i64 -9223372036854775808, align 8 | |
@const4795 = internal unnamed_addr constant i64 9223372036854775807, align 8 | |
@const4806 = internal unnamed_addr constant {}* inttoptr (i64 1 to {}*), align 8 | |
@const4823 = internal unnamed_addr constant { { i64 } } { { i64 } { i64 1 } }, align 8 | |
@const4830 = internal unnamed_addr constant %"1.core::marker::PhantomData<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" zeroinitializer, align 1 | |
@const4848 = internal unnamed_addr constant { { i64, [24 x i8] } } { { i64, [24 x i8] } { i64 0, [24 x i8] undef } }, align 8 | |
@const4855 = internal unnamed_addr constant { i32, [4 x i8] } { i32 0, [4 x i8] undef }, align 4 | |
@"_ZN6option15Option$LT$T$GT$6unwrap14_MSG_FILE_LINE20h9e0bce6065acf43cknOE" = external global { %str_slice, %str_slice, i32 } | |
@const4968 = internal unnamed_addr constant { { {}, i8* } } zeroinitializer, align 8 | |
@const4969 = internal unnamed_addr constant void (i8*)* @_ZN10sys_common6unwind3try6try_fn20h4135255088861083478E, align 8 | |
@const5014 = internal unnamed_addr constant i8* (i8*)* @_ZN3sys6thread6Thread3new12thread_start20h6675635106069454745E, align 8 | |
@const5021 = internal unnamed_addr constant i32 2, align 4 | |
@const5022 = internal unnamed_addr constant %closure zeroinitializer, align 1 | |
@const5026 = internal unnamed_addr constant { i64, [16 x i8] } { i64 0, [16 x i8] undef }, align 8 | |
@const5027 = internal unnamed_addr constant { i64, [24 x i8] } { i64 0, [24 x i8] undef }, align 8 | |
@_ZN4main15__STATIC_FMTSTR20h8a1bdb3cb755457aEaaE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref5034, i32 0, i32 0), i64 2 }, align 8 | |
@const5031 = internal unnamed_addr constant i8 (i32*, %"1.core::fmt::Formatter"*)* @_ZN3fmt3num16i32.fmt..Display3fmt20hc117e0f17c173be6gIVE, align 8 | |
@str5032 = internal constant [0 x i8] zeroinitializer | |
@str5033 = internal constant [1 x i8] c"\0A" | |
@ref5034 = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str5032, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str5033, i32 0, i32 0), i64 1 }], align 8 | |
; Function Attrs: uwtable | |
define internal void @_ZN4main20h789cd5288c0f40dafaaE() unnamed_addr #0 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%dropflag_hint_10 = alloca i8 | |
%x = alloca %"2.std::thread::JoinHandle<i32>" | |
%0 = alloca %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" | |
%arg = alloca %"2.std::thread::JoinHandle<i32>" | |
%1 = alloca { i8*, i32 } | |
%__llmatch = alloca i32* | |
%e = alloca i32 | |
%2 = alloca %"1.core::fmt::Arguments" | |
%3 = alloca { %str_slice*, i64 } | |
%4 = alloca [1 x %"1.core::fmt::ArgumentV1"] | |
%5 = alloca { i32* } | |
%match = alloca { i32* } | |
%6 = bitcast { i32* }* %match to i8* | |
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 8, i32 8, i1 false) | |
%__llmatch4 = alloca i32** | |
%__arg0 = alloca i32* | |
%__coerce_target = alloca { %"1.core::fmt::ArgumentV1"*, i64 } | |
store i8 61, i8* %dropflag_hint_10 | |
call void @_ZN6thread5spawn20h9708455906512300109E(%"2.std::thread::JoinHandle<i32>"* noalias nocapture sret dereferenceable(40) %x, %closure undef) | |
%7 = bitcast %"2.std::thread::JoinHandle<i32>"* %x to i8* | |
%8 = bitcast %"2.std::thread::JoinHandle<i32>"* %arg to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %8, i8* %7, i64 40, i32 8, i1 false) | |
%9 = bitcast %"2.std::thread::JoinHandle<i32>"* %x to i8* | |
call void @llvm.memset.p0i8.i64(i8* %9, i8 29, i64 40, i32 8, i1 false) | |
invoke void @"_ZN6thread19JoinHandle$LT$T$GT$4join21h17144207033677885488E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24) %0, %"2.std::thread::JoinHandle<i32>"* noalias nocapture dereferenceable(40) %arg) | |
to label %normal-return unwind label %unwind_ast_7_ | |
normal-return: ; preds = %entry-block | |
%10 = getelementptr inbounds %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>", %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0 | |
%11 = load i8, i8* %10, !range !0 | |
switch i8 %11, label %match_else [ | |
i8 0, label %match_case | |
i8 1, label %match_case2 | |
] | |
unwind_ast_7_: ; preds = %entry-block | |
%12 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %12, { i8*, i32 }* %1 | |
br label %clean_ast_7_ | |
resume: ; preds = %clean_ast_7_ | |
%13 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %13 | |
clean_ast_7_: ; preds = %clean_ast_7_7, %unwind_ast_7_ | |
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.432517h7f68f48c9da6347cE"(%"2.std::thread::JoinHandle<i32>"* %x) | |
br label %resume | |
case_body: ; preds = %match_case | |
%14 = load i32*, i32** %__llmatch | |
%15 = load i32, i32* %14, align 4 | |
store i32 %15, i32* %e, align 4 | |
%16 = bitcast { %str_slice*, i64 }* %3 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %16, i8* bitcast ({ %str_slice*, i64 }* @_ZN4main15__STATIC_FMTSTR20h8a1bdb3cb755457aEaaE to i8*), i64 16, i32 8, i1 false) | |
%17 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %3, i32 0, i32 0 | |
%18 = load %str_slice*, %str_slice** %17 | |
%19 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %3, i32 0, i32 1 | |
%20 = load i64, i64* %19 | |
%21 = getelementptr inbounds { i32* }, { i32* }* %5, i32 0, i32 0 | |
store i32* %e, i32** %21, align 8 | |
%22 = bitcast { i32* }* %5 to i64* | |
%23 = load i64, i64* %22, align 8 | |
%24 = bitcast { i32* }* %match to i64* | |
store i64 %23, i64* %24, align 8 | |
%25 = getelementptr inbounds { i32* }, { i32* }* %match, i32 0, i32 0 | |
store i32** %25, i32*** %__llmatch4 | |
br label %case_body3 | |
case_body1: ; preds = %match_case2 | |
br label %join10 | |
match_else: ; preds = %normal-return | |
unreachable | |
match_case: ; preds = %normal-return | |
%26 = bitcast %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, i32 }* | |
%27 = getelementptr inbounds { i8, i32 }, { i8, i32 }* %26, i32 0, i32 1 | |
store i32* %27, i32** %__llmatch | |
br label %case_body | |
match_case2: ; preds = %normal-return | |
%28 = bitcast %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, { i8*, void (i8*)** } }* | |
%29 = getelementptr inbounds { i8, { i8*, void (i8*)** } }, { i8, { i8*, void (i8*)** } }* %28, i32 0, i32 1 | |
br label %case_body1 | |
case_body3: ; preds = %case_body | |
%30 = load i32**, i32*** %__llmatch4 | |
%31 = load i32*, i32** %30, align 8, !nonnull !1 | |
store i32* %31, i32** %__arg0, align 8 | |
%32 = getelementptr inbounds [1 x %"1.core::fmt::ArgumentV1"], [1 x %"1.core::fmt::ArgumentV1"]* %4, i32 0, i32 0 | |
%33 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %32, i32 0 | |
%34 = load i32*, i32** %__arg0, align 8, !nonnull !1 | |
invoke void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new21h18080889046923876904E"(%"1.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16) %33, i32* noalias readonly dereferenceable(4) %34, i8 (i32*, %"1.core::fmt::Formatter"*)* @_ZN3fmt3num16i32.fmt..Display3fmt20hc117e0f17c173be6gIVE) | |
to label %normal-return5 unwind label %unwind_ast_7_6 | |
normal-return5: ; preds = %case_body3 | |
br label %join | |
unwind_ast_7_6: ; preds = %normal-return8, %join, %case_body3 | |
%35 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %35, { i8*, i32 }* %1 | |
br label %clean_ast_7_7 | |
clean_ast_7_7: ; preds = %unwind_ast_7_6 | |
call void @"_ZN109core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.471617h59b33c617b2df913E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0) | |
br label %clean_ast_7_ | |
join: ; preds = %normal-return5 | |
%36 = bitcast [1 x %"1.core::fmt::ArgumentV1"]* %4 to %"1.core::fmt::ArgumentV1"* | |
%37 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0 | |
store %"1.core::fmt::ArgumentV1"* %36, %"1.core::fmt::ArgumentV1"** %37 | |
%38 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1 | |
store i64 1, i64* %38 | |
%39 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0 | |
%40 = load %"1.core::fmt::ArgumentV1"*, %"1.core::fmt::ArgumentV1"** %39 | |
%41 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1 | |
%42 = load i64, i64* %41 | |
invoke void @"_ZN3fmt23Arguments$LT$$u27$a$GT$6new_v120he832f0357fe73cd4nLWE"(%"1.core::fmt::Arguments"* noalias nocapture sret dereferenceable(48) %2, %str_slice* noalias nonnull readonly %18, i64 %20, %"1.core::fmt::ArgumentV1"* noalias nonnull readonly %40, i64 %42) | |
to label %normal-return8 unwind label %unwind_ast_7_6 | |
normal-return8: ; preds = %join | |
invoke void @_ZN2io5stdio6_print20h9c517a1f8695e043RghE(%"1.core::fmt::Arguments"* noalias nocapture dereferenceable(48) %2) | |
to label %normal-return9 unwind label %unwind_ast_7_6 | |
normal-return9: ; preds = %normal-return8 | |
br label %join10 | |
join10: ; preds = %case_body1, %normal-return9 | |
call void @"_ZN109core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.471617h59b33c617b2df913E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0) | |
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.432517h7f68f48c9da6347cE"(%"2.std::thread::JoinHandle<i32>"* %x) | |
ret void | |
} | |
; Function Attrs: uwtable | |
define internal void @_ZN6thread5spawn20h9708455906512300109E(%"2.std::thread::JoinHandle<i32>"* noalias nocapture sret dereferenceable(40), %closure) unnamed_addr #0 { | |
entry-block: | |
%f = alloca %closure | |
%2 = alloca %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>" | |
%3 = alloca %"2.std::thread::Builder" | |
call void @_ZN6thread7Builder3new20hd61460f72f72a351ezbE(%"2.std::thread::Builder"* noalias nocapture sret dereferenceable(40) %3) | |
call void @_ZN6thread7Builder5spawn21h10742646647574140955E(%"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* noalias nocapture sret dereferenceable(48) %2, %"2.std::thread::Builder"* noalias nocapture dereferenceable(40) %3, %closure undef) | |
call void @"_ZN6result24Result$LT$T$C$$u20$E$GT$6unwrap20h9085768988248029081E"(%"2.std::thread::JoinHandle<i32>"* noalias nocapture sret dereferenceable(40) %0, %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* noalias nocapture dereferenceable(48) %2) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN6result24Result$LT$T$C$$u20$E$GT$6unwrap20h9085768988248029081E"(%"2.std::thread::JoinHandle<i32>"* noalias nocapture sret dereferenceable(40), %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* noalias nocapture dereferenceable(48) %self) unnamed_addr #1 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%t = alloca %"2.std::thread::JoinHandle<i32>"* | |
%e = alloca %"2.std::io::error::Error"* | |
%arg = alloca %"2.std::io::error::Error" | |
%1 = alloca { i8*, i32 } | |
%2 = getelementptr inbounds %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>", %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %self, i32 0, i32 0 | |
%3 = load i64, i64* %2, !range !2 | |
switch i64 %3, label %match_else [ | |
i64 0, label %match_case | |
i64 1, label %match_case2 | |
] | |
case_body: ; preds = %match_case | |
%4 = load %"2.std::thread::JoinHandle<i32>"*, %"2.std::thread::JoinHandle<i32>"** %t | |
%5 = bitcast %"2.std::thread::JoinHandle<i32>"* %4 to i8* | |
%6 = bitcast %"2.std::thread::JoinHandle<i32>"* %0 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %6, i8* %5, i64 40, i32 8, i1 false) | |
%7 = bitcast %"2.std::thread::JoinHandle<i32>"* %4 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %7, i8 29, i64 40, i32 8, i1 false) | |
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.432517h7f68f48c9da6347cE"(%"2.std::thread::JoinHandle<i32>"* %4) | |
%8 = bitcast %"2.std::thread::JoinHandle<i32>"* %4 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %8, i8 29, i64 40, i32 8, i1 false) | |
br label %join | |
case_body1: ; preds = %match_case2 | |
%9 = load %"2.std::io::error::Error"*, %"2.std::io::error::Error"** %e | |
%10 = load i8*, i8** getelementptr inbounds (%str_slice, %str_slice* @const4748, i32 0, i32 0) | |
%11 = load i64, i64* getelementptr inbounds (%str_slice, %str_slice* @const4748, i32 0, i32 1) | |
%12 = bitcast %"2.std::io::error::Error"* %9 to i8* | |
%13 = bitcast %"2.std::io::error::Error"* %arg to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %13, i8* %12, i64 16, i32 8, i1 false) | |
%14 = bitcast %"2.std::io::error::Error"* %9 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %14, i8 29, i64 16, i32 8, i1 false) | |
invoke void @_ZN6result13unwrap_failed20h1876135566383573108E(i8* noalias nonnull readonly %10, i64 %11, %"2.std::io::error::Error"* noalias nocapture dereferenceable(16) %arg) | |
to label %normal-return unwind label %unwind_custom_ | |
match_else: ; preds = %entry-block | |
unreachable | |
match_case: ; preds = %entry-block | |
%15 = bitcast %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %self to { i64, %"2.std::thread::JoinHandle<i32>" }* | |
%16 = getelementptr inbounds { i64, %"2.std::thread::JoinHandle<i32>" }, { i64, %"2.std::thread::JoinHandle<i32>" }* %15, i32 0, i32 1 | |
store %"2.std::thread::JoinHandle<i32>"* %16, %"2.std::thread::JoinHandle<i32>"** %t | |
br label %case_body | |
match_case2: ; preds = %entry-block | |
%17 = bitcast %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %self to { i64, %"2.std::io::error::Error" }* | |
%18 = getelementptr inbounds { i64, %"2.std::io::error::Error" }, { i64, %"2.std::io::error::Error" }* %17, i32 0, i32 1 | |
store %"2.std::io::error::Error"* %18, %"2.std::io::error::Error"** %e | |
br label %case_body1 | |
normal-return: ; preds = %case_body1 | |
unreachable | |
unwind_custom_: ; preds = %case_body1 | |
%19 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %19, { i8*, i32 }* %1 | |
br label %clean_custom_3 | |
resume: ; preds = %clean_custom_ | |
%20 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %20 | |
clean_custom_: ; preds = %clean_custom_3 | |
call void @"_ZN91core..result..Result$LT$std..thread..JoinHandle$LT$i32$GT$$C$$u20$std..io..error..Error$GT$9drop.475017hc4174e44d68d042eE"(%"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %self) | |
br label %resume | |
clean_custom_3: ; preds = %unwind_custom_ | |
call void @_ZN21std..io..error..Error9drop.472817hb777fe86563aa27aE(%"2.std::io::error::Error"* %9) | |
%21 = bitcast %"2.std::io::error::Error"* %9 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %21, i8 29, i64 16, i32 8, i1 false) | |
br label %clean_custom_ | |
join: ; preds = %case_body | |
call void @"_ZN91core..result..Result$LT$std..thread..JoinHandle$LT$i32$GT$$C$$u20$std..io..error..Error$GT$9drop.475017hc4174e44d68d042eE"(%"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %self) | |
ret void | |
} | |
; Function Attrs: argmemonly nounwind | |
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1) #2 | |
; Function Attrs: argmemonly nounwind | |
declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) #2 | |
define internal void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.432517h7f68f48c9da6347cE"(%"2.std::thread::JoinHandle<i32>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"2.std::thread::JoinHandle<i32>", %"2.std::thread::JoinHandle<i32>"* %0, i32 0, i32 0 | |
call void @"_ZN33std..thread..JoinInner$LT$i32$GT$9drop.432817h53b2419658d037c6E"(%"2.std::thread::JoinInner<i32>"* %1) | |
ret void | |
} | |
define internal void @"_ZN33std..thread..JoinInner$LT$i32$GT$9drop.432817h53b2419658d037c6E"(%"2.std::thread::JoinInner<i32>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"2.std::thread::JoinInner<i32>", %"2.std::thread::JoinInner<i32>"* %0, i32 0, i32 0 | |
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.433117h39fed133f93a1204E"(%"1.core::option::Option<std::sys::thread::Thread>"* %1) | |
%2 = getelementptr inbounds %"2.std::thread::JoinInner<i32>", %"2.std::thread::JoinInner<i32>"* %0, i32 0, i32 1 | |
call void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"* %2) | |
%3 = getelementptr inbounds %"2.std::thread::JoinInner<i32>", %"2.std::thread::JoinInner<i32>"* %0, i32 0, i32 2 | |
call void @"_ZN30std..thread..Packet$LT$i32$GT$9drop.470417h235834151b0d3859E"(%"2.std::thread::Packet<i32>"* %3) | |
ret void | |
} | |
define internal void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.433117h39fed133f93a1204E"(%"1.core::option::Option<std::sys::thread::Thread>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"1.core::option::Option<std::sys::thread::Thread>", %"1.core::option::Option<std::sys::thread::Thread>"* %0, i32 0, i32 0 | |
%2 = load i64, i64* %1 | |
switch i64 %2, label %enum-iter-ret-void [ | |
i64 0, label %enum-iter-variant-0 | |
i64 1, label %enum-iter-variant-1 | |
] | |
enum-iter-ret-void: ; preds = %entry-block | |
ret void | |
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0 | |
ret void | |
enum-iter-variant-0: ; preds = %entry-block | |
br label %enum-iter-next | |
enum-iter-variant-1: ; preds = %entry-block | |
%3 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %0 to { i64, %"2.std::sys::thread::Thread" }* | |
%4 = getelementptr inbounds { i64, %"2.std::sys::thread::Thread" }, { i64, %"2.std::sys::thread::Thread" }* %3, i32 0, i32 1 | |
call void @_ZN24std..sys..thread..Thread9drop.433417hcbc9fc29160ac810E(%"2.std::sys::thread::Thread"* %4) | |
br label %enum-iter-next | |
} | |
define internal void @_ZN24std..sys..thread..Thread9drop.433417hcbc9fc29160ac810E(%"2.std::sys::thread::Thread"*) unnamed_addr personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%1 = alloca { i8*, i32 } | |
%2 = getelementptr inbounds %"2.std::sys::thread::Thread", %"2.std::sys::thread::Thread"* %0, i32 0, i32 1 | |
%3 = load i8, i8* %2, align 1 | |
%4 = icmp ne i8 %3, -44 | |
%5 = icmp ne i8 %3, 29 | |
%6 = and i1 %4, %5 | |
br i1 %6, label %cond, label %next | |
next: ; preds = %cond, %entry-block | |
%7 = icmp eq i8 %3, -44 | |
br i1 %7, label %cond2, label %next1 | |
cond: ; preds = %entry-block | |
call void @llvm.debugtrap() | |
br label %next | |
next1: ; preds = %normal-return, %next | |
ret void | |
cond2: ; preds = %next | |
invoke void @_ZN3sys6thread11Thread.Drop4drop20h2b66f79133f5602207xE(%"2.std::sys::thread::Thread"* dereferenceable(16) %0) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %cond2 | |
call void @_ZN24std..sys..thread..Thread9drop.435117hcbc9fc29160ac810E(%"2.std::sys::thread::Thread"* %0) | |
br label %next1 | |
unwind_custom_: ; preds = %cond2 | |
%8 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %8, { i8*, i32 }* %1 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%9 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %9 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @_ZN24std..sys..thread..Thread9drop.435117hcbc9fc29160ac810E(%"2.std::sys::thread::Thread"* %0) | |
br label %resume | |
} | |
; Function Attrs: nounwind | |
declare void @llvm.debugtrap() #3 | |
declare void @_ZN3sys6thread11Thread.Drop4drop20h2b66f79133f5602207xE(%"2.std::sys::thread::Thread"* dereferenceable(16)) unnamed_addr | |
; Function Attrs: nounwind | |
declare i32 @rust_eh_personality(i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*) unnamed_addr #3 | |
define internal void @_ZN24std..sys..thread..Thread9drop.435117hcbc9fc29160ac810E(%"2.std::sys::thread::Thread"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"2.std::sys::thread::Thread", %"2.std::sys::thread::Thread"* %0, i32 0, i32 0 | |
ret void | |
} | |
define internal void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"2.std::thread::Thread", %"2.std::thread::Thread"* %0, i32 0, i32 0 | |
call void @"_ZN41alloc..arc..Arc$LT$std..thread..Inner$GT$9drop.435717h3485f6880df67204E"(%"5.alloc::arc::Arc<std::thread::Inner>"* %1) | |
ret void | |
} | |
define internal void @"_ZN41alloc..arc..Arc$LT$std..thread..Inner$GT$9drop.435717h3485f6880df67204E"(%"5.alloc::arc::Arc<std::thread::Inner>"*) unnamed_addr personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%1 = alloca { i8*, i32 } | |
invoke void @"_ZN3arc17Arc$LT$T$GT$.Drop4drop21h16039937915765706980E"(%"5.alloc::arc::Arc<std::thread::Inner>"* dereferenceable(8) %0) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %entry-block | |
call void @"_ZN41alloc..arc..Arc$LT$std..thread..Inner$GT$9drop.470117h3485f6880df67204E"(%"5.alloc::arc::Arc<std::thread::Inner>"* %0) | |
ret void | |
unwind_custom_: ; preds = %entry-block | |
%2 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %2, { i8*, i32 }* %1 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%3 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %3 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN41alloc..arc..Arc$LT$std..thread..Inner$GT$9drop.470117h3485f6880df67204E"(%"5.alloc::arc::Arc<std::thread::Inner>"* %0) | |
br label %resume | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN3arc17Arc$LT$T$GT$.Drop4drop21h16039937915765706980E"(%"5.alloc::arc::Arc<std::thread::Inner>"* dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"5.alloc::arc::Arc<std::thread::Inner>"* | |
%thin = alloca {}* | |
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"** | |
%1 = alloca i64 | |
%2 = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"* | |
%auto_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"* | |
%3 = bitcast %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref to i8* | |
call void @llvm.memset.p0i8.i64(i8* %3, i8 29, i64 8, i32 8, i1 false) | |
store %"5.alloc::arc::Arc<std::thread::Inner>"* %0, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8 | |
%4 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1 | |
%5 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %4, i32 0, i32 0 | |
%6 = call dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref20h3527880663500656115E"(%"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8) %5) | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"** %6, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8 | |
%7 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"**, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8, !nonnull !1 | |
%8 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %7, align 8 | |
%9 = bitcast %"5.alloc::arc::ArcInner<std::thread::Inner>"* %8 to {}* | |
store {}* %9, {}** %thin, align 8 | |
%10 = load {}*, {}** %thin, align 8 | |
%11 = ptrtoint {}* %10 to i64 | |
%12 = icmp eq i64 %11, 2097865012304223517 | |
br i1 %12, label %then-block-123-, label %next-block | |
then-block-123-: ; preds = %entry-block | |
br label %clean_ast_106_ | |
clean_ast_106_: ; preds = %clean_ast_106_1, %then-block-123- | |
br label %return | |
next-block: ; preds = %entry-block | |
%13 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1 | |
%14 = call dereferenceable(72) %"5.alloc::arc::ArcInner<std::thread::Inner>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h18288450237844670917E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8) %13) | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %14, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %2, align 8 | |
%15 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %2, align 8, !nonnull !1 | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %15, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8 | |
%16 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8, !nonnull !1 | |
%17 = getelementptr inbounds %"5.alloc::arc::ArcInner<std::thread::Inner>", %"5.alloc::arc::ArcInner<std::thread::Inner>"* %16, i32 0, i32 0 | |
%18 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_sub20h8772de3cc84a5649T1KE(%"1.core::sync::atomic::AtomicUsize"* dereferenceable(8) %17, i64 1, i8 1) | |
store i64 %18, i64* %1, align 8 | |
%19 = load i64, i64* %1, align 8 | |
%20 = icmp ne i64 %19, 1 | |
br i1 %20, label %then-block-136-, label %next-block2 | |
then-block-136-: ; preds = %next-block | |
br label %clean_ast_106_1 | |
clean_ast_106_1: ; preds = %then-block-136- | |
br label %clean_ast_106_ | |
next-block2: ; preds = %next-block | |
call void @_ZN4sync6atomic5fence20hfb767f14e632fab6sdLE(i8 2) | |
%21 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1 | |
call void @"_ZN3arc12Arc$LT$T$GT$9drop_slow20h1977331813102813224E"(%"5.alloc::arc::Arc<std::thread::Inner>"* dereferenceable(8) %21) | |
br label %return | |
return: ; preds = %next-block2, %clean_ast_106_ | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref20h3527880663500656115E"(%"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* | |
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"** | |
store %"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* %0, %"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"** %self, align 8 | |
%1 = load %"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"*, %"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>", %"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* %1, i32 0, i32 0 | |
%3 = call dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref21h14871923730271077745E"(%"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8) %2) | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"** %3, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8 | |
%4 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"**, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8, !nonnull !1 | |
ret %"5.alloc::arc::ArcInner<std::thread::Inner>"** %4 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref21h14871923730271077745E"(%"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"* | |
%inner = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"** | |
store %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"* %0, %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"** %self, align 8 | |
%1 = load %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"*, %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>", %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"* %1, i32 0, i32 0 | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"** %2, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %inner | |
%3 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"**, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %inner, align 8, !nonnull !1 | |
ret %"5.alloc::arc::ArcInner<std::thread::Inner>"** %3 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN4sync6atomic11AtomicUsize9fetch_sub20h8772de3cc84a5649T1KE(%"1.core::sync::atomic::AtomicUsize"* dereferenceable(8), i64, i8) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"1.core::sync::atomic::AtomicUsize"* | |
%val = alloca i64 | |
%order = alloca i8 | |
%3 = alloca i64* | |
store %"1.core::sync::atomic::AtomicUsize"* %0, %"1.core::sync::atomic::AtomicUsize"** %self, align 8 | |
store i64 %1, i64* %val, align 8 | |
store i8 %2, i8* %order, align 1 | |
%4 = load %"1.core::sync::atomic::AtomicUsize"*, %"1.core::sync::atomic::AtomicUsize"** %self, align 8, !nonnull !1 | |
%5 = getelementptr inbounds %"1.core::sync::atomic::AtomicUsize", %"1.core::sync::atomic::AtomicUsize"* %4, i32 0, i32 0 | |
%6 = call i64* @"_ZN4cell19UnsafeCell$LT$T$GT$3get21h10481443535072462739E"(%"1.core::cell::UnsafeCell<usize>"* dereferenceable(8) %5) | |
store i64* %6, i64** %3, align 8 | |
%7 = load i64*, i64** %3, align 8 | |
%8 = load i64, i64* %val, align 8 | |
%9 = load i8, i8* %order, align 1 | |
%10 = call i64 @_ZN4sync6atomic10atomic_sub21h11115807970469476791E(i64* %7, i64 %8, i8 %9) | |
ret i64 %10 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN4sync6atomic10atomic_sub21h11115807970469476791E(i64*, i64, i8) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca i64 | |
%dst = alloca i64* | |
%val = alloca i64 | |
%order = alloca i8 | |
store i64* %0, i64** %dst, align 8 | |
store i64 %1, i64* %val, align 8 | |
store i8 %2, i8* %order, align 1 | |
%3 = load i8, i8* %order, !range !3 | |
switch i8 %3, label %match_else [ | |
i8 2, label %match_case | |
i8 1, label %match_case5 | |
i8 3, label %match_case6 | |
i8 0, label %match_case7 | |
i8 4, label %match_case8 | |
] | |
case_body: ; preds = %match_case | |
%4 = load i64*, i64** %dst, align 8 | |
%5 = load i64, i64* %val, align 8 | |
%6 = atomicrmw sub i64* %4, i64 %5 acquire | |
store i64 %6, i64* %sret_slot, align 8 | |
br label %join | |
case_body1: ; preds = %match_case5 | |
%7 = load i64*, i64** %dst, align 8 | |
%8 = load i64, i64* %val, align 8 | |
%9 = atomicrmw sub i64* %7, i64 %8 release | |
store i64 %9, i64* %sret_slot, align 8 | |
br label %join | |
case_body2: ; preds = %match_case6 | |
%10 = load i64*, i64** %dst, align 8 | |
%11 = load i64, i64* %val, align 8 | |
%12 = atomicrmw sub i64* %10, i64 %11 acq_rel | |
store i64 %12, i64* %sret_slot, align 8 | |
br label %join | |
case_body3: ; preds = %match_case7 | |
%13 = load i64*, i64** %dst, align 8 | |
%14 = load i64, i64* %val, align 8 | |
%15 = atomicrmw sub i64* %13, i64 %14 monotonic | |
store i64 %15, i64* %sret_slot, align 8 | |
br label %join | |
case_body4: ; preds = %match_case8 | |
%16 = load i64*, i64** %dst, align 8 | |
%17 = load i64, i64* %val, align 8 | |
%18 = atomicrmw sub i64* %16, i64 %17 seq_cst | |
store i64 %18, i64* %sret_slot, align 8 | |
br label %join | |
match_else: ; preds = %entry-block | |
unreachable | |
match_case: ; preds = %entry-block | |
br label %case_body | |
match_case5: ; preds = %entry-block | |
br label %case_body1 | |
match_case6: ; preds = %entry-block | |
br label %case_body2 | |
match_case7: ; preds = %entry-block | |
br label %case_body3 | |
match_case8: ; preds = %entry-block | |
br label %case_body4 | |
join: ; preds = %case_body4, %case_body3, %case_body2, %case_body1, %case_body | |
%19 = load i64, i64* %sret_slot, align 8 | |
ret i64 %19 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64* @"_ZN4cell19UnsafeCell$LT$T$GT$3get21h10481443535072462739E"(%"1.core::cell::UnsafeCell<usize>"* dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"1.core::cell::UnsafeCell<usize>"* | |
store %"1.core::cell::UnsafeCell<usize>"* %0, %"1.core::cell::UnsafeCell<usize>"** %self, align 8 | |
%1 = load %"1.core::cell::UnsafeCell<usize>"*, %"1.core::cell::UnsafeCell<usize>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"1.core::cell::UnsafeCell<usize>", %"1.core::cell::UnsafeCell<usize>"* %1, i32 0, i32 0 | |
ret i64* %2 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal dereferenceable(72) %"5.alloc::arc::ArcInner<std::thread::Inner>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h18288450237844670917E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"5.alloc::arc::Arc<std::thread::Inner>"* | |
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"** | |
store %"5.alloc::arc::Arc<std::thread::Inner>"* %0, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8 | |
%1 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %1, i32 0, i32 0 | |
%3 = call dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref20h3527880663500656115E"(%"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8) %2) | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"** %3, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8 | |
%4 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"**, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8, !nonnull !1 | |
%5 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %4, align 8 | |
ret %"5.alloc::arc::ArcInner<std::thread::Inner>"* %5 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN4sync6atomic5fence20hfb767f14e632fab6sdLE(i8) unnamed_addr #1 { | |
entry-block: | |
%order = alloca i8 | |
store i8 %0, i8* %order, align 1 | |
%1 = load i8, i8* %order, !range !3 | |
switch i8 %1, label %match_else [ | |
i8 2, label %match_case | |
i8 1, label %match_case5 | |
i8 3, label %match_case6 | |
i8 4, label %match_case7 | |
i8 0, label %match_case8 | |
] | |
case_body: ; preds = %match_case | |
fence acquire | |
br label %join | |
case_body1: ; preds = %match_case5 | |
fence release | |
br label %join | |
case_body2: ; preds = %match_case6 | |
fence acq_rel | |
br label %join | |
case_body3: ; preds = %match_case7 | |
fence seq_cst | |
br label %join | |
case_body4: ; preds = %match_case8 | |
call void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @_ZN4sync6atomic5fence14_MSG_FILE_LINE20h9e0bce6065acf43cSdLE) | |
unreachable | |
match_else: ; preds = %entry-block | |
unreachable | |
match_case: ; preds = %entry-block | |
br label %case_body | |
match_case5: ; preds = %entry-block | |
br label %case_body1 | |
match_case6: ; preds = %entry-block | |
br label %case_body2 | |
match_case7: ; preds = %entry-block | |
br label %case_body3 | |
match_case8: ; preds = %entry-block | |
br label %case_body4 | |
join: ; preds = %case_body3, %case_body2, %case_body1, %case_body | |
ret void | |
} | |
; Function Attrs: cold noinline noreturn | |
declare void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40)) unnamed_addr #4 | |
; Function Attrs: noinline uwtable | |
define internal void @"_ZN3arc12Arc$LT$T$GT$9drop_slow20h1977331813102813224E"(%"5.alloc::arc::Arc<std::thread::Inner>"* dereferenceable(8)) unnamed_addr #5 { | |
entry-block: | |
%self = alloca %"5.alloc::arc::Arc<std::thread::Inner>"* | |
%ptr = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"* | |
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"** | |
%1 = alloca i64 | |
%2 = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"* | |
%auto_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"* | |
%3 = bitcast %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref to i8* | |
call void @llvm.memset.p0i8.i64(i8* %3, i8 29, i64 8, i32 8, i1 false) | |
%4 = alloca i64 | |
%5 = alloca i64 | |
store %"5.alloc::arc::Arc<std::thread::Inner>"* %0, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8 | |
%6 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1 | |
%7 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %6, i32 0, i32 0 | |
%8 = call dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref20h3527880663500656115E"(%"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8) %7) | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"** %8, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8 | |
%9 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"**, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8, !nonnull !1 | |
%10 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %9, align 8 | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %10, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %ptr, align 8 | |
%11 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %ptr, align 8 | |
%12 = getelementptr inbounds %"5.alloc::arc::ArcInner<std::thread::Inner>", %"5.alloc::arc::ArcInner<std::thread::Inner>"* %11, i32 0, i32 2 | |
call void @_ZN18std..thread..Inner9drop.443717he8f8771f8d3004a2E(%"2.std::thread::Inner"* %12) | |
%13 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1 | |
%14 = call dereferenceable(72) %"5.alloc::arc::ArcInner<std::thread::Inner>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h18288450237844670917E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8) %13) | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %14, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %2, align 8 | |
%15 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %2, align 8, !nonnull !1 | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %15, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8 | |
%16 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8, !nonnull !1 | |
%17 = getelementptr inbounds %"5.alloc::arc::ArcInner<std::thread::Inner>", %"5.alloc::arc::ArcInner<std::thread::Inner>"* %16, i32 0, i32 1 | |
%18 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_sub20h8772de3cc84a5649T1KE(%"1.core::sync::atomic::AtomicUsize"* dereferenceable(8) %17, i64 1, i8 1) | |
store i64 %18, i64* %1, align 8 | |
%19 = load i64, i64* %1, align 8 | |
%20 = icmp eq i64 %19, 1 | |
br i1 %20, label %then-block-503-, label %next-block | |
then-block-503-: ; preds = %entry-block | |
call void @_ZN4sync6atomic5fence20hfb767f14e632fab6sdLE(i8 2) | |
%21 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %ptr, align 8 | |
%22 = bitcast %"5.alloc::arc::ArcInner<std::thread::Inner>"* %21 to i8* | |
%23 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %ptr, align 8 | |
%24 = call i64 @_ZN3mem11size_of_val20h5634690238456108449E(%"5.alloc::arc::ArcInner<std::thread::Inner>"* dereferenceable(72) %23) | |
store i64 %24, i64* %4, align 8 | |
%25 = load i64, i64* %4, align 8 | |
%26 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %ptr, align 8 | |
%27 = call i64 @_ZN3mem12align_of_val20h9868654142309481359E(%"5.alloc::arc::ArcInner<std::thread::Inner>"* dereferenceable(72) %26) | |
store i64 %27, i64* %5, align 8 | |
%28 = load i64, i64* %5, align 8 | |
call void @_ZN4heap10deallocate20hb6b00bc54f0213287eaE(i8* %22, i64 %25, i64 %28) | |
br label %next-block | |
next-block: ; preds = %entry-block, %then-block-503- | |
ret void | |
} | |
define internal void @_ZN18std..thread..Inner9drop.443717he8f8771f8d3004a2E(%"2.std::thread::Inner"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"2.std::thread::Inner", %"2.std::thread::Inner"* %0, i32 0, i32 0 | |
call void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.444017he0121e2e024daed1E"(%"1.core::option::Option<collections::string::String>"* %1) | |
%2 = getelementptr inbounds %"2.std::thread::Inner", %"2.std::thread::Inner"* %0, i32 0, i32 1 | |
call void @"_ZN35std..sync..mutex..Mutex$LT$bool$GT$9drop.465717h1416a2e66c6d4d99E"(%"2.std::sync::mutex::Mutex<bool>"* %2) | |
%3 = getelementptr inbounds %"2.std::thread::Inner", %"2.std::thread::Inner"* %0, i32 0, i32 2 | |
call void @_ZN27std..sync..condvar..Condvar9drop.468817h91d50e4f9124550bE(%"2.std::sync::condvar::Condvar"* %3) | |
ret void | |
} | |
define internal void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.444017he0121e2e024daed1E"(%"1.core::option::Option<collections::string::String>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"1.core::option::Option<collections::string::String>", %"1.core::option::Option<collections::string::String>"* %0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 | |
%2 = load i8*, i8** %1 | |
%3 = icmp ne i8* %2, null | |
switch i1 %3, label %enum-iter-ret-void [ | |
i1 false, label %enum-iter-variant-0 | |
i1 true, label %enum-iter-variant-1 | |
] | |
enum-iter-ret-void: ; preds = %entry-block | |
ret void | |
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0 | |
ret void | |
enum-iter-variant-0: ; preds = %entry-block | |
br label %enum-iter-next | |
enum-iter-variant-1: ; preds = %entry-block | |
%4 = getelementptr inbounds %"1.core::option::Option<collections::string::String>", %"1.core::option::Option<collections::string::String>"* %0, i32 0, i32 0 | |
call void @_ZN27collections..string..String9drop.444317h3bf5ae538aa88112E(%"3.collections::string::String"* %4) | |
br label %enum-iter-next | |
} | |
define internal void @_ZN27collections..string..String9drop.444317h3bf5ae538aa88112E(%"3.collections::string::String"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"3.collections::string::String", %"3.collections::string::String"* %0, i32 0, i32 0 | |
call void @"_ZN31collections..vec..Vec$LT$u8$GT$9drop.444617h14454e5f3598600cE"(%"3.collections::vec::Vec<u8>"* %1) | |
ret void | |
} | |
define internal void @"_ZN31collections..vec..Vec$LT$u8$GT$9drop.444617h14454e5f3598600cE"(%"3.collections::vec::Vec<u8>"*) unnamed_addr personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%1 = alloca { i8*, i32 } | |
invoke void @"_ZN3vec17Vec$LT$T$GT$.Drop4drop21h13964674616635877281E"(%"3.collections::vec::Vec<u8>"* dereferenceable(24) %0) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %entry-block | |
call void @"_ZN31collections..vec..Vec$LT$u8$GT$9drop.463217h14454e5f3598600cE"(%"3.collections::vec::Vec<u8>"* %0) | |
ret void | |
unwind_custom_: ; preds = %entry-block | |
%2 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %2, { i8*, i32 }* %1 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%3 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %3 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN31collections..vec..Vec$LT$u8$GT$9drop.463217h14454e5f3598600cE"(%"3.collections::vec::Vec<u8>"* %0) | |
br label %resume | |
} | |
; Function Attrs: uwtable | |
define internal void @"_ZN3vec17Vec$LT$T$GT$.Drop4drop21h13964674616635877281E"(%"3.collections::vec::Vec<u8>"* dereferenceable(24)) unnamed_addr #0 { | |
entry-block: | |
%self = alloca %"3.collections::vec::Vec<u8>"* | |
%1 = alloca i8 | |
%2 = alloca i8 | |
%_result = alloca {} | |
%3 = alloca %"1.core::slice::IterMut<u8>" | |
%4 = alloca %"1.core::slice::IterMut<u8>" | |
%overloaded_deref = alloca { i8*, i64 } | |
%iter = alloca %"1.core::slice::IterMut<u8>"* | |
%5 = alloca i8* | |
%match = alloca i8* | |
%6 = bitcast i8** %match to i8* | |
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 8, i32 8, i1 false) | |
%x = alloca i8** | |
store %"3.collections::vec::Vec<u8>"* %0, %"3.collections::vec::Vec<u8>"** %self, align 8 | |
%7 = load %"3.collections::vec::Vec<u8>"*, %"3.collections::vec::Vec<u8>"** %self, align 8, !nonnull !1 | |
%8 = getelementptr inbounds %"3.collections::vec::Vec<u8>", %"3.collections::vec::Vec<u8>"* %7, i32 0, i32 0 | |
%9 = call zeroext i1 @"_ZN7raw_vec15RawVec$LT$T$GT$30unsafe_no_drop_flag_needs_drop21h15024409836838868505E"(%"5.alloc::raw_vec::RawVec<u8>"* noalias readonly dereferenceable(16) %8) | |
%10 = zext i1 %9 to i8 | |
store i8 %10, i8* %1, align 1 | |
%11 = load i8, i8* %1, align 1, !range !0 | |
%12 = trunc i8 %11 to i1 | |
br i1 %12, label %then-block-543-, label %next-block5 | |
then-block-543-: ; preds = %entry-block | |
store i8 0, i8* %2, align 1 | |
%13 = load i8, i8* %2, align 1, !range !0 | |
%14 = trunc i8 %13 to i1 | |
br i1 %14, label %then-block-550-, label %next-block | |
then-block-550-: ; preds = %then-block-543- | |
%15 = load %"3.collections::vec::Vec<u8>"*, %"3.collections::vec::Vec<u8>"** %self, align 8, !nonnull !1 | |
%16 = call { i8*, i64 } @"_ZN3vec26Vec$LT$T$GT$.ops..DerefMut9deref_mut20h9616926189477611975E"(%"3.collections::vec::Vec<u8>"* dereferenceable(24) %15) | |
%17 = extractvalue { i8*, i64 } %16, 0 | |
%18 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %overloaded_deref, i32 0, i32 0 | |
store i8* %17, i8** %18 | |
%19 = extractvalue { i8*, i64 } %16, 1 | |
%20 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %overloaded_deref, i32 0, i32 1 | |
store i64 %19, i64* %20 | |
%21 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %overloaded_deref, i32 0, i32 0 | |
%22 = load i8*, i8** %21 | |
%23 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %overloaded_deref, i32 0, i32 1 | |
%24 = load i64, i64* %23 | |
call void @"_ZN5slice12_$u5b$T$u5d$8iter_mut20h5556108270792489116E"(%"1.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16) %4, i8* nonnull %22, i64 %24) | |
call void @_ZN4iter14I.IntoIterator9into_iter21h17646240830877900482E(%"1.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16) %3, %"1.core::slice::IterMut<u8>"* noalias nocapture dereferenceable(16) %4) | |
store %"1.core::slice::IterMut<u8>"* %3, %"1.core::slice::IterMut<u8>"** %iter | |
br label %case_body | |
case_body: ; preds = %then-block-550- | |
%25 = load %"1.core::slice::IterMut<u8>"*, %"1.core::slice::IterMut<u8>"** %iter | |
br label %loop_body | |
loop_exit: ; preds = %clean_ast_8179_ | |
br label %join4 | |
loop_body: ; preds = %join, %case_body | |
%26 = call i8* @"_ZN5slice39IterMut$LT$$u27$a$C$$u20$T$GT$.Iterator4next20h2760443638291090962E"(%"1.core::slice::IterMut<u8>"* dereferenceable(16) %25) | |
store i8* %26, i8** %5, align 8 | |
%27 = load i8*, i8** %5, align 8 | |
store i8* %27, i8** %match, align 8 | |
%28 = load i8*, i8** %match | |
%29 = icmp ne i8* %28, null | |
switch i1 %29, label %match_else [ | |
i1 true, label %match_case | |
i1 false, label %match_case3 | |
] | |
case_body1: ; preds = %match_case | |
%30 = load i8**, i8*** %x | |
%31 = load i8*, i8** %30, align 8, !nonnull !1 | |
br label %join | |
case_body2: ; preds = %match_case3 | |
br label %clean_ast_8179_ | |
match_else: ; preds = %loop_body | |
unreachable | |
match_case: ; preds = %loop_body | |
store i8** %match, i8*** %x | |
br label %case_body1 | |
match_case3: ; preds = %loop_body | |
br label %case_body2 | |
clean_ast_8179_: ; preds = %case_body2 | |
br label %loop_exit | |
join: ; preds = %case_body1 | |
br label %loop_body | |
join4: ; preds = %loop_exit | |
br label %next-block | |
next-block: ; preds = %then-block-543-, %join4 | |
br label %next-block5 | |
next-block5: ; preds = %entry-block, %next-block | |
ret void | |
} | |
; Function Attrs: uwtable | |
define internal zeroext i1 @"_ZN7raw_vec15RawVec$LT$T$GT$30unsafe_no_drop_flag_needs_drop21h15024409836838868505E"(%"5.alloc::raw_vec::RawVec<u8>"* noalias readonly dereferenceable(16)) unnamed_addr #0 { | |
entry-block: | |
%self = alloca %"5.alloc::raw_vec::RawVec<u8>"* | |
store %"5.alloc::raw_vec::RawVec<u8>"* %0, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8 | |
%1 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %1, i32 0, i32 1 | |
%3 = load i64, i64* %2, align 8 | |
%4 = icmp ne i64 %3, 2097865012304223517 | |
%5 = zext i1 %4 to i8 | |
%6 = trunc i8 %5 to i1 | |
ret i1 %6 | |
} | |
; Function Attrs: uwtable | |
define internal void @_ZN4iter14I.IntoIterator9into_iter21h17646240830877900482E(%"1.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16), %"1.core::slice::IterMut<u8>"* noalias nocapture dereferenceable(16) %self) unnamed_addr #0 { | |
entry-block: | |
%1 = bitcast %"1.core::slice::IterMut<u8>"* %self to i8* | |
%2 = bitcast %"1.core::slice::IterMut<u8>"* %0 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %2, i8* %1, i64 16, i32 8, i1 false) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN5slice12_$u5b$T$u5d$8iter_mut20h5556108270792489116E"(%"1.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16), i8* nonnull, i64) unnamed_addr #1 { | |
entry-block: | |
%self = alloca { i8*, i64 } | |
%3 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
store i8* %1, i8** %3 | |
%4 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
store i64 %2, i64* %4 | |
%5 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
%6 = load i8*, i8** %5 | |
%7 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
%8 = load i64, i64* %7 | |
call void @"_ZN5slice21_$u5b$T$u5d$.SliceExt8iter_mut20h1171788439959852010E"(%"1.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16) %0, i8* nonnull %6, i64 %8) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN5slice21_$u5b$T$u5d$.SliceExt8iter_mut20h1171788439959852010E"(%"1.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16), i8* nonnull, i64) unnamed_addr #1 { | |
entry-block: | |
%3 = alloca i8* | |
%self = alloca { i8*, i64 } | |
%p = alloca i8* | |
%4 = alloca i64 | |
%p1 = alloca i8* | |
%5 = alloca i8 | |
%ptr = alloca i8* | |
%6 = alloca i64 | |
%7 = alloca i8* | |
%8 = alloca i64 | |
%9 = alloca i64 | |
%10 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
store i8* %1, i8** %10 | |
%11 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
store i64 %2, i64* %11 | |
%12 = call i64 @_ZN3mem7size_of20h8276612659399150484E() | |
store i64 %12, i64* %4, align 8 | |
%13 = load i64, i64* %4, align 8 | |
%14 = icmp eq i64 %13, 0 | |
br i1 %14, label %then-block-8248-, label %else-block | |
then-block-8248-: ; preds = %entry-block | |
store i8* inttoptr (i64 1 to i8*), i8** %p, align 8 | |
br label %join | |
else-block: ; preds = %entry-block | |
%15 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
%16 = load i8*, i8** %15 | |
%17 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
%18 = load i64, i64* %17 | |
%19 = call i8* @"_ZN5slice21_$u5b$T$u5d$.SliceExt10as_mut_ptr20h8543889870955801687E"(i8* nonnull %16, i64 %18) | |
store i8* %19, i8** %p1, align 8 | |
%20 = load i8*, i8** %p1, align 8 | |
%21 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null21h14484011124458446728E"(i8* %20) | |
%22 = zext i1 %21 to i8 | |
store i8 %22, i8* %5, align 1 | |
%23 = load i8, i8* %5, align 1, !range !0 | |
%24 = trunc i8 %23 to i1 | |
%25 = xor i1 %24, true | |
call void @llvm.assume(i1 %25) | |
%26 = load i8*, i8** %p1, align 8 | |
store i8* %26, i8** %p, align 8 | |
br label %join | |
join: ; preds = %else-block, %then-block-8248- | |
%27 = getelementptr inbounds %"1.core::slice::IterMut<u8>", %"1.core::slice::IterMut<u8>"* %0, i32 0, i32 0 | |
%28 = load i8*, i8** %p, align 8 | |
store i8* %28, i8** %27, align 8 | |
%29 = getelementptr inbounds %"1.core::slice::IterMut<u8>", %"1.core::slice::IterMut<u8>"* %0, i32 0, i32 1 | |
%30 = load i8*, i8** %p, align 8 | |
store i8* %30, i8** %ptr, align 8 | |
%31 = load i8*, i8** %ptr, align 8 | |
store i8* %31, i8** %3, align 8 | |
%32 = call i64 @_ZN3mem7size_of20h8276612659399150484E() | |
store i64 %32, i64* %6, align 8 | |
%33 = load i64, i64* %6, align 8 | |
%34 = icmp eq i64 %33, 0 | |
br i1 %34, label %then-block-8281-, label %else-block2 | |
then-block-8281-: ; preds = %join | |
%35 = load i8*, i8** %ptr, align 8 | |
%36 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
%37 = load i8*, i8** %36 | |
%38 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
%39 = load i64, i64* %38 | |
%40 = call i64 @"_ZN5slice21_$u5b$T$u5d$.SliceExt3len20h3499358034102167329E"(i8* noalias nonnull readonly %37, i64 %39) | |
store i64 %40, i64* %8, align 8 | |
%41 = load i64, i64* %8, align 8 | |
%42 = getelementptr i8, i8* %35, i64 %41 | |
store i8* %42, i8** %7, align 8 | |
%43 = load i8*, i8** %7, align 8 | |
store i8* %43, i8** %29, align 8 | |
br label %join3 | |
else-block2: ; preds = %join | |
%44 = load i8*, i8** %ptr, align 8 | |
%45 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
%46 = load i8*, i8** %45 | |
%47 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
%48 = load i64, i64* %47 | |
%49 = call i64 @"_ZN5slice21_$u5b$T$u5d$.SliceExt3len20h3499358034102167329E"(i8* noalias nonnull readonly %46, i64 %48) | |
store i64 %49, i64* %9, align 8 | |
%50 = load i64, i64* %9, align 8 | |
%51 = call i8* @"_ZN3ptr14_$BP$mut$u20$T6offset20h2409022817876756992E"(i8* %44, i64 %50) | |
store i8* %51, i8** %29, align 8 | |
br label %join3 | |
join3: ; preds = %else-block2, %then-block-8281- | |
%52 = getelementptr inbounds %"1.core::slice::IterMut<u8>", %"1.core::slice::IterMut<u8>"* %0, i32 0, i32 2 | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN3mem7size_of20h8276612659399150484E() unnamed_addr #1 { | |
entry-block: | |
ret i64 1 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i8* @"_ZN5slice21_$u5b$T$u5d$.SliceExt10as_mut_ptr20h8543889870955801687E"(i8* nonnull, i64) unnamed_addr #1 { | |
entry-block: | |
%self = alloca { i8*, i64 } | |
%2 = alloca %"1.core::raw::Slice<u8>" | |
%3 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
store i8* %0, i8** %3 | |
%4 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
store i64 %1, i64* %4 | |
%5 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
%6 = load i8*, i8** %5 | |
%7 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
%8 = load i64, i64* %7 | |
call void @_ZN3raw4Repr4repr21h15857245524079927975E(%"1.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16) %2, i8* noalias nonnull readonly %6, i64 %8) | |
%9 = getelementptr inbounds %"1.core::raw::Slice<u8>", %"1.core::raw::Slice<u8>"* %2, i32 0, i32 0 | |
%10 = load i8*, i8** %9, align 8 | |
ret i8* %10 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3raw4Repr4repr21h15857245524079927975E(%"1.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16), i8* noalias nonnull readonly, i64) unnamed_addr #1 { | |
entry-block: | |
%self = alloca { i8*, i64 } | |
%3 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
store i8* %1, i8** %3 | |
%4 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
store i64 %2, i64* %4 | |
call void @_ZN3mem14transmute_copy21h17103967338476420395E(%"1.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16) %0, { i8*, i64 }* noalias readonly dereferenceable(16) %self) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3mem14transmute_copy21h17103967338476420395E(%"1.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16), { i8*, i64 }* noalias readonly dereferenceable(16)) unnamed_addr #1 { | |
entry-block: | |
%src.i = alloca %"1.core::raw::Slice<u8>"* | |
%tmp.i = alloca %"1.core::raw::Slice<u8>" | |
%src = alloca { i8*, i64 }* | |
store { i8*, i64 }* %1, { i8*, i64 }** %src, align 8 | |
%2 = load { i8*, i64 }*, { i8*, i64 }** %src, align 8 | |
%3 = bitcast { i8*, i64 }* %2 to %"1.core::raw::Slice<u8>"* | |
store %"1.core::raw::Slice<u8>"* %3, %"1.core::raw::Slice<u8>"** %src.i, align 8, !noalias !4 | |
call void @_ZN3mem13uninitialized20h5938131619738210979E(%"1.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16) %tmp.i), !noalias !4 | |
%4 = load %"1.core::raw::Slice<u8>"*, %"1.core::raw::Slice<u8>"** %src.i, align 8, !noalias !4 | |
%5 = bitcast %"1.core::raw::Slice<u8>"* %tmp.i to i8* | |
%6 = bitcast %"1.core::raw::Slice<u8>"* %4 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %6, i64 16, i32 8, i1 false), !noalias !4 | |
%7 = bitcast %"1.core::raw::Slice<u8>"* %tmp.i to i8* | |
%8 = bitcast %"1.core::raw::Slice<u8>"* %0 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %8, i8* %7, i64 16, i32 8, i1 false) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3mem13uninitialized20h5938131619738210979E(%"1.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16)) unnamed_addr #1 { | |
entry-block: | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null21h14484011124458446728E"(i8*) unnamed_addr #1 { | |
entry-block: | |
%self = alloca i8* | |
store i8* %0, i8** %self, align 8 | |
%1 = load i8*, i8** %self, align 8 | |
%2 = icmp eq i8* %1, null | |
%3 = zext i1 %2 to i8 | |
%4 = trunc i8 %3 to i1 | |
ret i1 %4 | |
} | |
; Function Attrs: nounwind | |
declare void @llvm.assume(i1) #3 | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @"_ZN5slice21_$u5b$T$u5d$.SliceExt3len20h3499358034102167329E"(i8* noalias nonnull readonly, i64) unnamed_addr #1 { | |
entry-block: | |
%self = alloca { i8*, i64 } | |
%2 = alloca %"1.core::raw::Slice<u8>" | |
%3 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
store i8* %0, i8** %3 | |
%4 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
store i64 %1, i64* %4 | |
%5 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
%6 = load i8*, i8** %5 | |
%7 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
%8 = load i64, i64* %7 | |
call void @_ZN3raw4Repr4repr21h15857245524079927975E(%"1.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16) %2, i8* noalias nonnull readonly %6, i64 %8) | |
%9 = getelementptr inbounds %"1.core::raw::Slice<u8>", %"1.core::raw::Slice<u8>"* %2, i32 0, i32 1 | |
%10 = load i64, i64* %9, align 8 | |
ret i64 %10 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i8* @"_ZN3ptr14_$BP$mut$u20$T6offset20h2409022817876756992E"(i8*, i64) unnamed_addr #1 { | |
entry-block: | |
%self = alloca i8* | |
%count = alloca i64 | |
%2 = alloca i8* | |
store i8* %0, i8** %self, align 8 | |
store i64 %1, i64* %count, align 8 | |
%3 = load i8*, i8** %self, align 8 | |
%4 = load i64, i64* %count, align 8 | |
%5 = getelementptr inbounds i8, i8* %3, i64 %4 | |
store i8* %5, i8** %2, align 8 | |
%6 = load i8*, i8** %2, align 8 | |
ret i8* %6 | |
} | |
; Function Attrs: uwtable | |
define internal { i8*, i64 } @"_ZN3vec26Vec$LT$T$GT$.ops..DerefMut9deref_mut20h9616926189477611975E"(%"3.collections::vec::Vec<u8>"* dereferenceable(24)) unnamed_addr #0 { | |
entry-block: | |
%sret_slot = alloca { i8*, i64 } | |
%self = alloca %"3.collections::vec::Vec<u8>"* | |
%ptr = alloca i8* | |
%1 = alloca i8 | |
store %"3.collections::vec::Vec<u8>"* %0, %"3.collections::vec::Vec<u8>"** %self, align 8 | |
%2 = load %"3.collections::vec::Vec<u8>"*, %"3.collections::vec::Vec<u8>"** %self, align 8, !nonnull !1 | |
%3 = getelementptr inbounds %"3.collections::vec::Vec<u8>", %"3.collections::vec::Vec<u8>"* %2, i32 0, i32 0 | |
%4 = call i8* @"_ZN7raw_vec15RawVec$LT$T$GT$3ptr19h944427464412509304E"(%"5.alloc::raw_vec::RawVec<u8>"* noalias readonly dereferenceable(16) %3) | |
store i8* %4, i8** %ptr, align 8 | |
%5 = load i8*, i8** %ptr, align 8 | |
%6 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null21h14484011124458446728E"(i8* %5) | |
%7 = zext i1 %6 to i8 | |
store i8 %7, i8* %1, align 1 | |
%8 = load i8, i8* %1, align 1, !range !0 | |
%9 = trunc i8 %8 to i1 | |
%10 = xor i1 %9, true | |
call void @llvm.assume(i1 %10) | |
%11 = load i8*, i8** %ptr, align 8 | |
%12 = load %"3.collections::vec::Vec<u8>"*, %"3.collections::vec::Vec<u8>"** %self, align 8, !nonnull !1 | |
%13 = getelementptr inbounds %"3.collections::vec::Vec<u8>", %"3.collections::vec::Vec<u8>"* %12, i32 0, i32 1 | |
%14 = load i64, i64* %13, align 8 | |
%15 = call { i8*, i64 } @_ZN5slice18from_raw_parts_mut21h18395190216584573106E(i8* %11, i64 %14) | |
%16 = extractvalue { i8*, i64 } %15, 0 | |
%17 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %sret_slot, i32 0, i32 0 | |
store i8* %16, i8** %17 | |
%18 = extractvalue { i8*, i64 } %15, 1 | |
%19 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %sret_slot, i32 0, i32 1 | |
store i64 %18, i64* %19 | |
%20 = load { i8*, i64 }, { i8*, i64 }* %sret_slot, align 8 | |
ret { i8*, i64 } %20 | |
} | |
; Function Attrs: uwtable | |
define internal i8* @"_ZN7raw_vec15RawVec$LT$T$GT$3ptr19h944427464412509304E"(%"5.alloc::raw_vec::RawVec<u8>"* noalias readonly dereferenceable(16)) unnamed_addr #0 { | |
entry-block: | |
%self = alloca %"5.alloc::raw_vec::RawVec<u8>"* | |
%overloaded_deref = alloca i8** | |
store %"5.alloc::raw_vec::RawVec<u8>"* %0, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8 | |
%1 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %1, i32 0, i32 0 | |
%3 = call dereferenceable(8) i8** @"_ZN3ptr21Unique$LT$T$GT$.Deref5deref20h8509669138907285805E"(%"1.core::ptr::Unique<u8>"* noalias readonly dereferenceable(8) %2) | |
store i8** %3, i8*** %overloaded_deref, align 8 | |
%4 = load i8**, i8*** %overloaded_deref, align 8, !nonnull !1 | |
%5 = load i8*, i8** %4, align 8 | |
ret i8* %5 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal dereferenceable(8) i8** @"_ZN3ptr21Unique$LT$T$GT$.Deref5deref20h8509669138907285805E"(%"1.core::ptr::Unique<u8>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"1.core::ptr::Unique<u8>"* | |
%overloaded_deref = alloca i8** | |
store %"1.core::ptr::Unique<u8>"* %0, %"1.core::ptr::Unique<u8>"** %self, align 8 | |
%1 = load %"1.core::ptr::Unique<u8>"*, %"1.core::ptr::Unique<u8>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"1.core::ptr::Unique<u8>", %"1.core::ptr::Unique<u8>"* %1, i32 0, i32 0 | |
%3 = call dereferenceable(8) i8** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref20h3937895913553903092E"(%"1.core::nonzero::NonZero<*const u8>"* noalias readonly dereferenceable(8) %2) | |
store i8** %3, i8*** %overloaded_deref, align 8 | |
%4 = load i8**, i8*** %overloaded_deref, align 8, !nonnull !1 | |
ret i8** %4 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal dereferenceable(8) i8** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref20h3937895913553903092E"(%"1.core::nonzero::NonZero<*const u8>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"1.core::nonzero::NonZero<*const u8>"* | |
%inner = alloca i8** | |
store %"1.core::nonzero::NonZero<*const u8>"* %0, %"1.core::nonzero::NonZero<*const u8>"** %self, align 8 | |
%1 = load %"1.core::nonzero::NonZero<*const u8>"*, %"1.core::nonzero::NonZero<*const u8>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"1.core::nonzero::NonZero<*const u8>", %"1.core::nonzero::NonZero<*const u8>"* %1, i32 0, i32 0 | |
store i8** %2, i8*** %inner | |
%3 = load i8**, i8*** %inner, align 8, !nonnull !1 | |
ret i8** %3 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal { i8*, i64 } @_ZN5slice18from_raw_parts_mut21h18395190216584573106E(i8*, i64) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca { i8*, i64 } | |
%p = alloca i8* | |
%len = alloca i64 | |
store i8* %0, i8** %p, align 8 | |
store i64 %1, i64* %len, align 8 | |
%2 = bitcast { i8*, i64 }* %sret_slot to %"1.core::raw::Slice<u8>"* | |
%3 = getelementptr inbounds %"1.core::raw::Slice<u8>", %"1.core::raw::Slice<u8>"* %2, i32 0, i32 0 | |
%4 = load i8*, i8** %p, align 8 | |
store i8* %4, i8** %3, align 8 | |
%5 = getelementptr inbounds %"1.core::raw::Slice<u8>", %"1.core::raw::Slice<u8>"* %2, i32 0, i32 1 | |
%6 = load i64, i64* %len, align 8 | |
store i64 %6, i64* %5, align 8 | |
%7 = load { i8*, i64 }, { i8*, i64 }* %sret_slot, align 8 | |
ret { i8*, i64 } %7 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i8* @"_ZN5slice39IterMut$LT$$u27$a$C$$u20$T$GT$.Iterator4next20h2760443638291090962E"(%"1.core::slice::IterMut<u8>"* dereferenceable(16)) unnamed_addr #1 { | |
entry-block: | |
%1 = alloca i8* | |
%2 = alloca i8* | |
%sret_slot = alloca i8* | |
%self = alloca %"1.core::slice::IterMut<u8>"* | |
%3 = alloca i64 | |
%4 = alloca i8 | |
%5 = alloca i8 | |
%old = alloca i8* | |
%6 = alloca i8* | |
%ptr = alloca i8* | |
%7 = alloca i64 | |
%8 = alloca i8* | |
%ptr2 = alloca i8* | |
%9 = alloca i64 | |
store %"1.core::slice::IterMut<u8>"* %0, %"1.core::slice::IterMut<u8>"** %self, align 8 | |
%10 = call i64 @_ZN3mem7size_of20h8276612659399150484E() | |
store i64 %10, i64* %3, align 8 | |
%11 = load i64, i64* %3, align 8 | |
%12 = icmp ne i64 %11, 0 | |
br i1 %12, label %then-block-8618-, label %next-block | |
then-block-8618-: ; preds = %entry-block | |
%13 = load %"1.core::slice::IterMut<u8>"*, %"1.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1 | |
%14 = getelementptr inbounds %"1.core::slice::IterMut<u8>", %"1.core::slice::IterMut<u8>"* %13, i32 0, i32 0 | |
%15 = load i8*, i8** %14, align 8 | |
%16 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null21h14484011124458446728E"(i8* %15) | |
%17 = zext i1 %16 to i8 | |
store i8 %17, i8* %4, align 1 | |
%18 = load i8, i8* %4, align 1, !range !0 | |
%19 = trunc i8 %18 to i1 | |
%20 = xor i1 %19, true | |
call void @llvm.assume(i1 %20) | |
%21 = load %"1.core::slice::IterMut<u8>"*, %"1.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1 | |
%22 = getelementptr inbounds %"1.core::slice::IterMut<u8>", %"1.core::slice::IterMut<u8>"* %21, i32 0, i32 1 | |
%23 = load i8*, i8** %22, align 8 | |
%24 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null21h14484011124458446728E"(i8* %23) | |
%25 = zext i1 %24 to i8 | |
store i8 %25, i8* %5, align 1 | |
%26 = load i8, i8* %5, align 1, !range !0 | |
%27 = trunc i8 %26 to i1 | |
%28 = xor i1 %27, true | |
call void @llvm.assume(i1 %28) | |
br label %next-block | |
next-block: ; preds = %entry-block, %then-block-8618- | |
%29 = load %"1.core::slice::IterMut<u8>"*, %"1.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1 | |
%30 = getelementptr inbounds %"1.core::slice::IterMut<u8>", %"1.core::slice::IterMut<u8>"* %29, i32 0, i32 0 | |
%31 = load i8*, i8** %30, align 8 | |
%32 = load %"1.core::slice::IterMut<u8>"*, %"1.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1 | |
%33 = getelementptr inbounds %"1.core::slice::IterMut<u8>", %"1.core::slice::IterMut<u8>"* %32, i32 0, i32 1 | |
%34 = load i8*, i8** %33, align 8 | |
%35 = icmp eq i8* %31, %34 | |
br i1 %35, label %then-block-8639-, label %else-block | |
then-block-8639-: ; preds = %next-block | |
%36 = bitcast i8** %sret_slot to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %36, i8* bitcast (i8** @const4599 to i8*), i64 8, i32 8, i1 false) | |
br label %join5 | |
else-block: ; preds = %next-block | |
%37 = load %"1.core::slice::IterMut<u8>"*, %"1.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1 | |
%38 = getelementptr inbounds %"1.core::slice::IterMut<u8>", %"1.core::slice::IterMut<u8>"* %37, i32 0, i32 0 | |
%39 = load i8*, i8** %38, align 8 | |
store i8* %39, i8** %old, align 8 | |
%40 = load %"1.core::slice::IterMut<u8>"*, %"1.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1 | |
%41 = getelementptr inbounds %"1.core::slice::IterMut<u8>", %"1.core::slice::IterMut<u8>"* %40, i32 0, i32 0 | |
%42 = load i8*, i8** %41, align 8 | |
store i8* %42, i8** %ptr, align 8 | |
%43 = load i8*, i8** %ptr, align 8 | |
store i8* %43, i8** %2, align 8 | |
%44 = call i64 @_ZN3mem7size_of20h8276612659399150484E() | |
store i64 %44, i64* %7, align 8 | |
%45 = load i64, i64* %7, align 8 | |
%46 = icmp eq i64 %45, 0 | |
br i1 %46, label %then-block-8665-, label %else-block1 | |
then-block-8665-: ; preds = %else-block | |
%47 = load i8*, i8** %ptr, align 8 | |
%48 = getelementptr i8, i8* %47, i64 1 | |
store i8* %48, i8** %8, align 8 | |
%49 = load i8*, i8** %8, align 8 | |
store i8* %49, i8** %6, align 8 | |
br label %join | |
else-block1: ; preds = %else-block | |
%50 = load i8*, i8** %ptr, align 8 | |
%51 = call i8* @"_ZN3ptr14_$BP$mut$u20$T6offset20h2409022817876756992E"(i8* %50, i64 1) | |
store i8* %51, i8** %6, align 8 | |
br label %join | |
join: ; preds = %else-block1, %then-block-8665- | |
%52 = load i8*, i8** %6, align 8 | |
%53 = load %"1.core::slice::IterMut<u8>"*, %"1.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1 | |
%54 = getelementptr inbounds %"1.core::slice::IterMut<u8>", %"1.core::slice::IterMut<u8>"* %53, i32 0, i32 0 | |
store i8* %52, i8** %54, align 8 | |
%55 = load i8*, i8** %old, align 8 | |
store i8* %55, i8** %ptr2, align 8 | |
%56 = load i8*, i8** %ptr2, align 8 | |
store i8* %56, i8** %1, align 8 | |
%57 = call i64 @_ZN3mem7size_of20h8276612659399150484E() | |
store i64 %57, i64* %9, align 8 | |
%58 = load i64, i64* %9, align 8 | |
%59 = icmp eq i64 %58, 0 | |
br i1 %59, label %then-block-8695-, label %else-block3 | |
then-block-8695-: ; preds = %join | |
store i8* inttoptr (i64 1 to i8*), i8** %sret_slot, align 8 | |
br label %join4 | |
else-block3: ; preds = %join | |
%60 = load i8*, i8** %ptr2, align 8 | |
store i8* %60, i8** %sret_slot | |
br label %join4 | |
join4: ; preds = %else-block3, %then-block-8695- | |
br label %join5 | |
join5: ; preds = %join4, %then-block-8639- | |
%61 = load i8*, i8** %sret_slot, align 8 | |
ret i8* %61 | |
} | |
define internal void @"_ZN31collections..vec..Vec$LT$u8$GT$9drop.463217h14454e5f3598600cE"(%"3.collections::vec::Vec<u8>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"3.collections::vec::Vec<u8>", %"3.collections::vec::Vec<u8>"* %0, i32 0, i32 0 | |
call void @"_ZN32alloc..raw_vec..RawVec$LT$u8$GT$9drop.463517h6d2c0031e4e1531dE"(%"5.alloc::raw_vec::RawVec<u8>"* %1) | |
%2 = getelementptr inbounds %"3.collections::vec::Vec<u8>", %"3.collections::vec::Vec<u8>"* %0, i32 0, i32 1 | |
ret void | |
} | |
define internal void @"_ZN32alloc..raw_vec..RawVec$LT$u8$GT$9drop.463517h6d2c0031e4e1531dE"(%"5.alloc::raw_vec::RawVec<u8>"*) unnamed_addr personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%1 = alloca { i8*, i32 } | |
invoke void @"_ZN7raw_vec20RawVec$LT$T$GT$.Drop4drop20h6208879470178989655E"(%"5.alloc::raw_vec::RawVec<u8>"* dereferenceable(16) %0) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %entry-block | |
call void @"_ZN32alloc..raw_vec..RawVec$LT$u8$GT$9drop.465417h6d2c0031e4e1531dE"(%"5.alloc::raw_vec::RawVec<u8>"* %0) | |
ret void | |
unwind_custom_: ; preds = %entry-block | |
%2 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %2, { i8*, i32 }* %1 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%3 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %3 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN32alloc..raw_vec..RawVec$LT$u8$GT$9drop.465417h6d2c0031e4e1531dE"(%"5.alloc::raw_vec::RawVec<u8>"* %0) | |
br label %resume | |
} | |
; Function Attrs: uwtable | |
define internal void @"_ZN7raw_vec20RawVec$LT$T$GT$.Drop4drop20h6208879470178989655E"(%"5.alloc::raw_vec::RawVec<u8>"* dereferenceable(16)) unnamed_addr #0 { | |
entry-block: | |
%self = alloca %"5.alloc::raw_vec::RawVec<u8>"* | |
%elem_size = alloca i64 | |
%1 = alloca i8 | |
%align = alloca i64 | |
%num_bytes = alloca i64 | |
%overloaded_deref = alloca i8** | |
store %"5.alloc::raw_vec::RawVec<u8>"* %0, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8 | |
%2 = call i64 @_ZN3mem7size_of20h8276612659399150484E() | |
store i64 %2, i64* %elem_size, align 8 | |
%3 = load i64, i64* %elem_size, align 8 | |
%4 = icmp ne i64 %3, 0 | |
br i1 %4, label %before_rhs, label %join | |
join: ; preds = %before_rhs, %entry-block | |
%5 = phi i1 [ %4, %entry-block ], [ %9, %before_rhs ] | |
br i1 %5, label %before_rhs2, label %join1 | |
before_rhs: ; preds = %entry-block | |
%6 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1 | |
%7 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %6, i32 0, i32 1 | |
%8 = load i64, i64* %7, align 8 | |
%9 = icmp ne i64 %8, 0 | |
br label %join | |
join1: ; preds = %before_rhs2, %join | |
%10 = phi i1 [ %5, %join ], [ %15, %before_rhs2 ] | |
br i1 %10, label %then-block-8733-, label %next-block | |
before_rhs2: ; preds = %join | |
%11 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1 | |
%12 = call zeroext i1 @"_ZN7raw_vec15RawVec$LT$T$GT$30unsafe_no_drop_flag_needs_drop21h15024409836838868505E"(%"5.alloc::raw_vec::RawVec<u8>"* noalias readonly dereferenceable(16) %11) | |
%13 = zext i1 %12 to i8 | |
store i8 %13, i8* %1, align 1 | |
%14 = load i8, i8* %1, align 1, !range !0 | |
%15 = trunc i8 %14 to i1 | |
br label %join1 | |
then-block-8733-: ; preds = %join1 | |
%16 = call i64 @_ZN3mem8align_of21h15419131119688532458E() | |
store i64 %16, i64* %align, align 8 | |
%17 = load i64, i64* %elem_size, align 8 | |
%18 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1 | |
%19 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %18, i32 0, i32 1 | |
%20 = load i64, i64* %19, align 8 | |
%21 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %17, i64 %20) | |
%22 = extractvalue { i64, i1 } %21, 0 | |
%23 = extractvalue { i64, i1 } %21, 1 | |
%24 = icmp eq i1 %23, true | |
%25 = call i1 @llvm.expect.i1(i1 %24, i1 false) | |
br i1 %24, label %cond, label %next | |
next: ; preds = %then-block-8733- | |
store i64 %22, i64* %num_bytes, align 8 | |
%26 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1 | |
%27 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %26, i32 0, i32 0 | |
%28 = call dereferenceable(8) i8** @"_ZN3ptr21Unique$LT$T$GT$.Deref5deref20h8509669138907285805E"(%"1.core::ptr::Unique<u8>"* noalias readonly dereferenceable(8) %27) | |
store i8** %28, i8*** %overloaded_deref, align 8 | |
%29 = load i8**, i8*** %overloaded_deref, align 8, !nonnull !1 | |
%30 = load i8*, i8** %29, align 8 | |
%31 = load i64, i64* %num_bytes, align 8 | |
%32 = load i64, i64* %align, align 8 | |
call void @_ZN4heap10deallocate20hb6b00bc54f0213287eaE(i8* %30, i64 %31, i64 %32) | |
br label %next-block | |
cond: ; preds = %then-block-8733- | |
call void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc4647) | |
unreachable | |
next-block: ; preds = %join1, %next | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN3mem8align_of21h15419131119688532458E() unnamed_addr #1 { | |
entry-block: | |
ret i64 1 | |
} | |
; Function Attrs: nounwind readnone | |
declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #6 | |
; Function Attrs: nounwind readnone | |
declare i1 @llvm.expect.i1(i1, i1) #6 | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN4heap10deallocate20hb6b00bc54f0213287eaE(i8*, i64, i64) unnamed_addr #1 { | |
entry-block: | |
%ptr = alloca i8* | |
%old_size = alloca i64 | |
%align = alloca i64 | |
%__arg = alloca i8* | |
%__arg1 = alloca i64 | |
%__arg2 = alloca i64 | |
store i8* %0, i8** %ptr, align 8 | |
store i64 %1, i64* %old_size, align 8 | |
store i64 %2, i64* %align, align 8 | |
%3 = load i8*, i8** %ptr, align 8 | |
%4 = load i64, i64* %old_size, align 8 | |
%5 = load i64, i64* %align, align 8 | |
store i8* %3, i8** %__arg, align 8 | |
%6 = load i8*, i8** %__arg | |
store i64 %4, i64* %__arg1, align 8 | |
%7 = load i64, i64* %__arg1 | |
store i64 %5, i64* %__arg2, align 8 | |
%8 = load i64, i64* %__arg2 | |
call void @__rust_deallocate(i8* %6, i64 %7, i64 %8) | |
ret void | |
} | |
; Function Attrs: nounwind | |
declare void @__rust_deallocate(i8*, i64, i64) unnamed_addr #3 | |
define internal void @"_ZN32alloc..raw_vec..RawVec$LT$u8$GT$9drop.465417h6d2c0031e4e1531dE"(%"5.alloc::raw_vec::RawVec<u8>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %0, i32 0, i32 0 | |
%2 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %0, i32 0, i32 1 | |
ret void | |
} | |
define internal void @"_ZN35std..sync..mutex..Mutex$LT$bool$GT$9drop.465717h1416a2e66c6d4d99E"(%"2.std::sync::mutex::Mutex<bool>"*) unnamed_addr personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%1 = alloca { i8*, i32 } | |
%2 = getelementptr inbounds %"2.std::sync::mutex::Mutex<bool>", %"2.std::sync::mutex::Mutex<bool>"* %0, i32 0, i32 2 | |
%3 = load i8, i8* %2, align 1 | |
%4 = icmp ne i8 %3, -44 | |
%5 = icmp ne i8 %3, 29 | |
%6 = and i1 %4, %5 | |
br i1 %6, label %cond, label %next | |
next: ; preds = %cond, %entry-block | |
%7 = icmp eq i8 %3, -44 | |
br i1 %7, label %cond2, label %next1 | |
cond: ; preds = %entry-block | |
call void @llvm.debugtrap() | |
br label %next | |
next1: ; preds = %normal-return, %next | |
ret void | |
cond2: ; preds = %next | |
invoke void @"_ZN4sync5mutex19Mutex$LT$T$GT$.Drop4drop20h6264524338689743634E"(%"2.std::sync::mutex::Mutex<bool>"* dereferenceable(16) %0) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %cond2 | |
call void @"_ZN35std..sync..mutex..Mutex$LT$bool$GT$9drop.468117h1416a2e66c6d4d99E"(%"2.std::sync::mutex::Mutex<bool>"* %0) | |
br label %next1 | |
unwind_custom_: ; preds = %cond2 | |
%8 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %8, { i8*, i32 }* %1 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%9 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %9 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN35std..sync..mutex..Mutex$LT$bool$GT$9drop.468117h1416a2e66c6d4d99E"(%"2.std::sync::mutex::Mutex<bool>"* %0) | |
br label %resume | |
} | |
; Function Attrs: uwtable | |
define internal void @"_ZN4sync5mutex19Mutex$LT$T$GT$.Drop4drop20h6264524338689743634E"(%"2.std::sync::mutex::Mutex<bool>"* dereferenceable(16)) unnamed_addr #0 { | |
entry-block: | |
%self = alloca %"2.std::sync::mutex::Mutex<bool>"* | |
store %"2.std::sync::mutex::Mutex<bool>"* %0, %"2.std::sync::mutex::Mutex<bool>"** %self, align 8 | |
%1 = load %"2.std::sync::mutex::Mutex<bool>"*, %"2.std::sync::mutex::Mutex<bool>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"2.std::sync::mutex::Mutex<bool>", %"2.std::sync::mutex::Mutex<bool>"* %1, i32 0, i32 0 | |
%3 = load %"2.std::sync::mutex::StaticMutex"*, %"2.std::sync::mutex::StaticMutex"** %2, align 8, !nonnull !1 | |
%4 = getelementptr inbounds %"2.std::sync::mutex::StaticMutex", %"2.std::sync::mutex::StaticMutex"* %3, i32 0, i32 0 | |
call void @_ZN10sys_common5mutex5Mutex7destroy20h20afb4475b292ecb2lsE(%"2.std::sys_common::mutex::Mutex"* dereferenceable(40) %4) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN10sys_common5mutex5Mutex7destroy20h20afb4475b292ecb2lsE(%"2.std::sys_common::mutex::Mutex"* dereferenceable(40)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"2.std::sys_common::mutex::Mutex"* | |
store %"2.std::sys_common::mutex::Mutex"* %0, %"2.std::sys_common::mutex::Mutex"** %self, align 8 | |
%1 = load %"2.std::sys_common::mutex::Mutex"*, %"2.std::sys_common::mutex::Mutex"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"2.std::sys_common::mutex::Mutex", %"2.std::sys_common::mutex::Mutex"* %1, i32 0, i32 0 | |
call void @_ZN3sys5mutex5Mutex7destroy20he3b31591a41ecc04V9vE(%"2.std::sys::mutex::Mutex"* dereferenceable(40) %2) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3sys5mutex5Mutex7destroy20he3b31591a41ecc04V9vE(%"2.std::sys::mutex::Mutex"* dereferenceable(40)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"2.std::sys::mutex::Mutex"* | |
%r = alloca i32 | |
%1 = alloca %"7.libc::unix::notbsd::linux::pthread_mutex_t"* | |
%__arg = alloca %"7.libc::unix::notbsd::linux::pthread_mutex_t"* | |
%2 = alloca { i32*, i32* } | |
%__llmatch = alloca i32** | |
%left_val = alloca i32* | |
%__llmatch1 = alloca i32** | |
%right_val = alloca i32* | |
%3 = alloca %"1.core::fmt::Arguments" | |
%4 = alloca { %str_slice*, i64 } | |
%5 = alloca [2 x %"1.core::fmt::ArgumentV1"] | |
%6 = alloca { i32**, i32** } | |
%__llmatch3 = alloca i32*** | |
%__arg0 = alloca i32** | |
%__llmatch4 = alloca i32*** | |
%__arg1 = alloca i32** | |
%__coerce_target = alloca { %"1.core::fmt::ArgumentV1"*, i64 } | |
%7 = alloca { %str_slice, i32 }* | |
store %"2.std::sys::mutex::Mutex"* %0, %"2.std::sys::mutex::Mutex"** %self, align 8 | |
%8 = load %"2.std::sys::mutex::Mutex"*, %"2.std::sys::mutex::Mutex"** %self, align 8, !nonnull !1 | |
%9 = getelementptr inbounds %"2.std::sys::mutex::Mutex", %"2.std::sys::mutex::Mutex"* %8, i32 0, i32 0 | |
%10 = call %"7.libc::unix::notbsd::linux::pthread_mutex_t"* @"_ZN4cell19UnsafeCell$LT$T$GT$3get20h6257592530890838436E"(%"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"* dereferenceable(40) %9) | |
store %"7.libc::unix::notbsd::linux::pthread_mutex_t"* %10, %"7.libc::unix::notbsd::linux::pthread_mutex_t"** %1, align 8 | |
%11 = load %"7.libc::unix::notbsd::linux::pthread_mutex_t"*, %"7.libc::unix::notbsd::linux::pthread_mutex_t"** %1, align 8 | |
store %"7.libc::unix::notbsd::linux::pthread_mutex_t"* %11, %"7.libc::unix::notbsd::linux::pthread_mutex_t"** %__arg, align 8 | |
%12 = load %"7.libc::unix::notbsd::linux::pthread_mutex_t"*, %"7.libc::unix::notbsd::linux::pthread_mutex_t"** %__arg | |
%13 = call i32 @pthread_mutex_destroy(%"7.libc::unix::notbsd::linux::pthread_mutex_t"* %12) | |
store i32 %13, i32* %r, align 4 | |
%14 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %2, i32 0, i32 0 | |
store i32* %r, i32** %14, align 8 | |
%15 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %2, i32 0, i32 1 | |
store i32* @ref4667, i32** %15, align 8 | |
%16 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %2, i32 0, i32 0 | |
%17 = getelementptr inbounds { i32*, i32* }, { i32*, i32* }* %2, i32 0, i32 1 | |
store i32** %17, i32*** %__llmatch1 | |
store i32** %16, i32*** %__llmatch | |
br label %case_body | |
case_body: ; preds = %entry-block | |
%18 = load i32**, i32*** %__llmatch1 | |
%19 = load i32*, i32** %18, align 8, !nonnull !1 | |
store i32* %19, i32** %right_val, align 8 | |
%20 = load i32**, i32*** %__llmatch | |
%21 = load i32*, i32** %20, align 8, !nonnull !1 | |
store i32* %21, i32** %left_val, align 8 | |
%22 = load i32*, i32** %left_val, align 8, !nonnull !1 | |
%23 = load i32, i32* %22, align 4 | |
%24 = load i32*, i32** %right_val, align 8, !nonnull !1 | |
%25 = load i32, i32* %24, align 4 | |
%26 = icmp eq i32 %23, %25 | |
%27 = xor i1 %26, true | |
br i1 %27, label %then-block-8860-, label %next-block | |
then-block-8860-: ; preds = %case_body | |
%28 = bitcast { %str_slice*, i64 }* %4 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %28, i8* bitcast ({ %str_slice*, i64 }* @_ZN3sys5mutex5Mutex7destroy15__STATIC_FMTSTR20hb7403b0de171f7deLawE to i8*), i64 16, i32 8, i1 false) | |
%29 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %4, i32 0, i32 0 | |
%30 = load %str_slice*, %str_slice** %29 | |
%31 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %4, i32 0, i32 1 | |
%32 = load i64, i64* %31 | |
%33 = getelementptr inbounds { i32**, i32** }, { i32**, i32** }* %6, i32 0, i32 0 | |
store i32** %left_val, i32*** %33, align 8 | |
%34 = getelementptr inbounds { i32**, i32** }, { i32**, i32** }* %6, i32 0, i32 1 | |
store i32** %right_val, i32*** %34, align 8 | |
%35 = getelementptr inbounds { i32**, i32** }, { i32**, i32** }* %6, i32 0, i32 0 | |
%36 = getelementptr inbounds { i32**, i32** }, { i32**, i32** }* %6, i32 0, i32 1 | |
store i32*** %36, i32**** %__llmatch4 | |
store i32*** %35, i32**** %__llmatch3 | |
br label %case_body2 | |
case_body2: ; preds = %then-block-8860- | |
%37 = load i32***, i32**** %__llmatch3 | |
%38 = load i32**, i32*** %37, align 8, !nonnull !1 | |
store i32** %38, i32*** %__arg0, align 8 | |
%39 = load i32***, i32**** %__llmatch4 | |
%40 = load i32**, i32*** %39, align 8, !nonnull !1 | |
store i32** %40, i32*** %__arg1, align 8 | |
%41 = getelementptr inbounds [2 x %"1.core::fmt::ArgumentV1"], [2 x %"1.core::fmt::ArgumentV1"]* %5, i32 0, i32 0 | |
%42 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %41, i32 0 | |
%43 = load i32**, i32*** %__arg0, align 8, !nonnull !1 | |
call void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new21h12753073406678658813E"(%"1.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16) %42, i32** noalias readonly dereferenceable(8) %43, i8 (i32**, %"1.core::fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt21h13815583691212233211E") | |
%44 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %41, i32 1 | |
%45 = load i32**, i32*** %__arg1, align 8, !nonnull !1 | |
call void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new21h12753073406678658813E"(%"1.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16) %44, i32** noalias readonly dereferenceable(8) %45, i8 (i32**, %"1.core::fmt::Formatter"*)* @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt21h13815583691212233211E") | |
br label %join | |
join: ; preds = %case_body2 | |
%46 = bitcast [2 x %"1.core::fmt::ArgumentV1"]* %5 to %"1.core::fmt::ArgumentV1"* | |
%47 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0 | |
store %"1.core::fmt::ArgumentV1"* %46, %"1.core::fmt::ArgumentV1"** %47 | |
%48 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1 | |
store i64 2, i64* %48 | |
%49 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0 | |
%50 = load %"1.core::fmt::ArgumentV1"*, %"1.core::fmt::ArgumentV1"** %49 | |
%51 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1 | |
%52 = load i64, i64* %51 | |
call void @"_ZN3fmt23Arguments$LT$$u27$a$GT$6new_v120he832f0357fe73cd4nLWE"(%"1.core::fmt::Arguments"* noalias nocapture sret dereferenceable(48) %3, %str_slice* noalias nonnull readonly %30, i64 %32, %"1.core::fmt::ArgumentV1"* noalias nonnull readonly %50, i64 %52) | |
store { %str_slice, i32 }* @_ZN3sys5mutex5Mutex7destroy10_FILE_LINE20hdceb746dfe68fc84kbwE, { %str_slice, i32 }** %7, align 8 | |
%53 = load { %str_slice, i32 }*, { %str_slice, i32 }** %7, align 8, !nonnull !1 | |
call void @_ZN10sys_common6unwind16begin_unwind_fmt20hd994f560d3c107d9jktE(%"1.core::fmt::Arguments"* noalias nocapture dereferenceable(48) %3, { %str_slice, i32 }* noalias readonly dereferenceable(24) %53) | |
unreachable | |
next-block: ; preds = %case_body | |
br label %join5 | |
join5: ; preds = %next-block | |
ret void | |
} | |
; Function Attrs: nounwind | |
declare i32 @pthread_mutex_destroy(%"7.libc::unix::notbsd::linux::pthread_mutex_t"*) unnamed_addr #3 | |
; Function Attrs: inlinehint uwtable | |
define internal %"7.libc::unix::notbsd::linux::pthread_mutex_t"* @"_ZN4cell19UnsafeCell$LT$T$GT$3get20h6257592530890838436E"(%"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"* dereferenceable(40)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"* | |
store %"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"* %0, %"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"** %self, align 8 | |
%1 = load %"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"*, %"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>", %"1.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"* %1, i32 0, i32 0 | |
ret %"7.libc::unix::notbsd::linux::pthread_mutex_t"* %2 | |
} | |
; Function Attrs: cold noinline noreturn | |
declare void @_ZN10sys_common6unwind16begin_unwind_fmt20hd994f560d3c107d9jktE(%"1.core::fmt::Arguments"* noalias nocapture dereferenceable(48), { %str_slice, i32 }* noalias readonly dereferenceable(24)) unnamed_addr #4 | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN3fmt23Arguments$LT$$u27$a$GT$6new_v120he832f0357fe73cd4nLWE"(%"1.core::fmt::Arguments"* noalias nocapture sret dereferenceable(48), %str_slice* noalias nonnull readonly, i64, %"1.core::fmt::ArgumentV1"* noalias nonnull readonly, i64) unnamed_addr #1 { | |
entry-block: | |
%pieces = alloca { %str_slice*, i64 } | |
%args = alloca { %"1.core::fmt::ArgumentV1"*, i64 } | |
%5 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %pieces, i32 0, i32 0 | |
store %str_slice* %1, %str_slice** %5 | |
%6 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %pieces, i32 0, i32 1 | |
store i64 %2, i64* %6 | |
%7 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %args, i32 0, i32 0 | |
store %"1.core::fmt::ArgumentV1"* %3, %"1.core::fmt::ArgumentV1"** %7 | |
%8 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %args, i32 0, i32 1 | |
store i64 %4, i64* %8 | |
%9 = getelementptr inbounds %"1.core::fmt::Arguments", %"1.core::fmt::Arguments"* %0, i32 0, i32 0 | |
%10 = bitcast { %str_slice*, i64 }* %pieces to i8* | |
%11 = bitcast { %str_slice*, i64 }* %9 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %11, i8* %10, i64 16, i32 8, i1 false) | |
%12 = getelementptr inbounds %"1.core::fmt::Arguments", %"1.core::fmt::Arguments"* %0, i32 0, i32 1 | |
%13 = bitcast %"1.core::option::Option<&'static [core::fmt::rt::v1::Argument]>"* %12 to { { i8*, i8* } }* | |
%14 = bitcast { { i8*, i8* } }* %13 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %14, i8* bitcast ({ { i8*, i8* } }* @const4678 to i8*), i64 16, i32 8, i1 false) | |
%15 = getelementptr inbounds %"1.core::fmt::Arguments", %"1.core::fmt::Arguments"* %0, i32 0, i32 2 | |
%16 = bitcast { %"1.core::fmt::ArgumentV1"*, i64 }* %args to i8* | |
%17 = bitcast { %"1.core::fmt::ArgumentV1"*, i64 }* %15 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %17, i8* %16, i64 16, i32 8, i1 false) | |
ret void | |
} | |
; Function Attrs: uwtable | |
define internal void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new21h12753073406678658813E"(%"1.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16), i32** noalias readonly dereferenceable(8), i8 (i32**, %"1.core::fmt::Formatter"*)*) unnamed_addr #0 { | |
entry-block: | |
%x = alloca i32** | |
%f = alloca i8 (i32**, %"1.core::fmt::Formatter"*)* | |
store i32** %1, i32*** %x, align 8 | |
store i8 (i32**, %"1.core::fmt::Formatter"*)* %2, i8 (i32**, %"1.core::fmt::Formatter"*)** %f, align 8 | |
%3 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %0, i32 0, i32 1 | |
%4 = load i8 (i32**, %"1.core::fmt::Formatter"*)*, i8 (i32**, %"1.core::fmt::Formatter"*)** %f, align 8 | |
%5 = bitcast i8 (i32**, %"1.core::fmt::Formatter"*)* %4 to i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)* | |
store i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)* %5, i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)** %3 | |
%6 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %0, i32 0, i32 0 | |
%7 = load i32**, i32*** %x, align 8, !nonnull !1 | |
%8 = bitcast i32** %7 to %"1.core::fmt::Void"* | |
store %"1.core::fmt::Void"* %8, %"1.core::fmt::Void"** %6 | |
ret void | |
} | |
; Function Attrs: uwtable | |
define internal i8 @"_ZN3fmt23_$RF$$u27$a$u20$T.Debug3fmt21h13815583691212233211E"(i32** noalias readonly dereferenceable(8), %"1.core::fmt::Formatter"* dereferenceable(96)) unnamed_addr #0 { | |
entry-block: | |
%sret_slot = alloca %"1.core::result::Result<(), core::fmt::Error>" | |
%self = alloca i32** | |
%f = alloca %"1.core::fmt::Formatter"* | |
store i32** %0, i32*** %self, align 8 | |
store %"1.core::fmt::Formatter"* %1, %"1.core::fmt::Formatter"** %f, align 8 | |
%2 = load i32**, i32*** %self, align 8, !nonnull !1 | |
%3 = load i32*, i32** %2, align 8, !nonnull !1 | |
%4 = load %"1.core::fmt::Formatter"*, %"1.core::fmt::Formatter"** %f, align 8, !nonnull !1 | |
%5 = call i8 @_ZN3fmt3num14i32.fmt..Debug3fmt20h36e2d36a9f46a426pkVE(i32* noalias readonly dereferenceable(4) %3, %"1.core::fmt::Formatter"* dereferenceable(96) %4) | |
%6 = bitcast %"1.core::result::Result<(), core::fmt::Error>"* %sret_slot to i8* | |
store i8 %5, i8* %6, align 1 | |
%7 = bitcast %"1.core::result::Result<(), core::fmt::Error>"* %sret_slot to i8* | |
%8 = load i8, i8* %7, align 1 | |
ret i8 %8 | |
} | |
declare i8 @_ZN3fmt3num14i32.fmt..Debug3fmt20h36e2d36a9f46a426pkVE(i32* noalias readonly dereferenceable(4), %"1.core::fmt::Formatter"* dereferenceable(96)) unnamed_addr | |
define internal void @"_ZN35std..sync..mutex..Mutex$LT$bool$GT$9drop.468117h1416a2e66c6d4d99E"(%"2.std::sync::mutex::Mutex<bool>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"2.std::sync::mutex::Mutex<bool>", %"2.std::sync::mutex::Mutex<bool>"* %0, i32 0, i32 0 | |
call void @"_ZN40Box$LT$std..sync..mutex..StaticMutex$GT$9drop.468417h67a301f47e00ce8eE"(%"2.std::sync::mutex::StaticMutex"** %1) | |
%2 = getelementptr inbounds %"2.std::sync::mutex::Mutex<bool>", %"2.std::sync::mutex::Mutex<bool>"* %0, i32 0, i32 1 | |
ret void | |
} | |
define internal void @"_ZN40Box$LT$std..sync..mutex..StaticMutex$GT$9drop.468417h67a301f47e00ce8eE"(%"2.std::sync::mutex::StaticMutex"**) unnamed_addr { | |
entry-block: | |
%1 = load %"2.std::sync::mutex::StaticMutex"*, %"2.std::sync::mutex::StaticMutex"** %0 | |
%2 = ptrtoint %"2.std::sync::mutex::StaticMutex"* %1 to i64 | |
%3 = icmp ne i64 %2, 2097865012304223517 | |
br i1 %3, label %cond, label %next | |
next: ; preds = %cond, %entry-block | |
ret void | |
cond: ; preds = %entry-block | |
%4 = bitcast %"2.std::sync::mutex::StaticMutex"* %1 to i8* | |
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %4, i64 48, i64 8) | |
br label %next | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8*, i64, i64) unnamed_addr #1 { | |
entry-block: | |
%ptr = alloca i8* | |
%old_size = alloca i64 | |
%align = alloca i64 | |
store i8* %0, i8** %ptr, align 8 | |
store i64 %1, i64* %old_size, align 8 | |
store i64 %2, i64* %align, align 8 | |
%3 = load i8*, i8** %ptr, align 8 | |
%4 = load i64, i64* %old_size, align 8 | |
%5 = load i64, i64* %align, align 8 | |
call void @_ZN4heap10deallocate20hb6b00bc54f0213287eaE(i8* %3, i64 %4, i64 %5) | |
ret void | |
} | |
define internal void @_ZN27std..sync..condvar..Condvar9drop.468817h91d50e4f9124550bE(%"2.std::sync::condvar::Condvar"*) unnamed_addr personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%1 = alloca { i8*, i32 } | |
%2 = getelementptr inbounds %"2.std::sync::condvar::Condvar", %"2.std::sync::condvar::Condvar"* %0, i32 0, i32 1 | |
%3 = load i8, i8* %2, align 1 | |
%4 = icmp ne i8 %3, -44 | |
%5 = icmp ne i8 %3, 29 | |
%6 = and i1 %4, %5 | |
br i1 %6, label %cond, label %next | |
next: ; preds = %cond, %entry-block | |
%7 = icmp eq i8 %3, -44 | |
br i1 %7, label %cond2, label %next1 | |
cond: ; preds = %entry-block | |
call void @llvm.debugtrap() | |
br label %next | |
next1: ; preds = %normal-return, %next | |
ret void | |
cond2: ; preds = %next | |
invoke void @_ZN4sync7condvar12Condvar.Drop4drop20h2714aef0d20e0c548dqE(%"2.std::sync::condvar::Condvar"* dereferenceable(16) %0) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %cond2 | |
call void @_ZN27std..sync..condvar..Condvar9drop.469117h91d50e4f9124550bE(%"2.std::sync::condvar::Condvar"* %0) | |
br label %next1 | |
unwind_custom_: ; preds = %cond2 | |
%8 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %8, { i8*, i32 }* %1 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%9 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %9 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @_ZN27std..sync..condvar..Condvar9drop.469117h91d50e4f9124550bE(%"2.std::sync::condvar::Condvar"* %0) | |
br label %resume | |
} | |
declare void @_ZN4sync7condvar12Condvar.Drop4drop20h2714aef0d20e0c548dqE(%"2.std::sync::condvar::Condvar"* dereferenceable(16)) unnamed_addr | |
define internal void @_ZN27std..sync..condvar..Condvar9drop.469117h91d50e4f9124550bE(%"2.std::sync::condvar::Condvar"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"2.std::sync::condvar::Condvar", %"2.std::sync::condvar::Condvar"* %0, i32 0, i32 0 | |
call void @"_ZN44Box$LT$std..sync..condvar..StaticCondvar$GT$9drop.469417hacecdddd6f085ee6E"(%"2.std::sync::condvar::StaticCondvar"** %1) | |
ret void | |
} | |
define internal void @"_ZN44Box$LT$std..sync..condvar..StaticCondvar$GT$9drop.469417hacecdddd6f085ee6E"(%"2.std::sync::condvar::StaticCondvar"**) unnamed_addr { | |
entry-block: | |
%1 = load %"2.std::sync::condvar::StaticCondvar"*, %"2.std::sync::condvar::StaticCondvar"** %0 | |
%2 = ptrtoint %"2.std::sync::condvar::StaticCondvar"* %1 to i64 | |
%3 = icmp ne i64 %2, 2097865012304223517 | |
br i1 %3, label %cond, label %next | |
next: ; preds = %cond, %entry-block | |
ret void | |
cond: ; preds = %entry-block | |
%4 = bitcast %"2.std::sync::condvar::StaticCondvar"* %1 to i8* | |
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %4, i64 56, i64 8) | |
br label %next | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN3mem11size_of_val20h5634690238456108449E(%"5.alloc::arc::ArcInner<std::thread::Inner>"* dereferenceable(72)) unnamed_addr #1 { | |
entry-block: | |
%val = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"* | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %0, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %val, align 8 | |
%1 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %val, align 8, !nonnull !1 | |
ret i64 72 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN3mem12align_of_val20h9868654142309481359E(%"5.alloc::arc::ArcInner<std::thread::Inner>"* dereferenceable(72)) unnamed_addr #1 { | |
entry-block: | |
%val = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"* | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %0, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %val, align 8 | |
%1 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %val, align 8, !nonnull !1 | |
ret i64 8 | |
} | |
define internal void @"_ZN41alloc..arc..Arc$LT$std..thread..Inner$GT$9drop.470117h3485f6880df67204E"(%"5.alloc::arc::Arc<std::thread::Inner>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %0, i32 0, i32 0 | |
ret void | |
} | |
define internal void @"_ZN30std..thread..Packet$LT$i32$GT$9drop.470417h235834151b0d3859E"(%"2.std::thread::Packet<i32>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"2.std::thread::Packet<i32>", %"2.std::thread::Packet<i32>"* %0, i32 0, i32 0 | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1) | |
ret void | |
} | |
define internal void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*) unnamed_addr personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%1 = alloca { i8*, i32 } | |
invoke void @"_ZN3arc17Arc$LT$T$GT$.Drop4drop20h9353956432734013393E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(8) %0) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %entry-block | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.472417h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0) | |
ret void | |
unwind_custom_: ; preds = %entry-block | |
%2 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %2, { i8*, i32 }* %1 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%3 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %3 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.472417h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0) | |
br label %resume | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN3arc17Arc$LT$T$GT$.Drop4drop20h9353956432734013393E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%thin = alloca {}* | |
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** | |
%1 = alloca i64 | |
%2 = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%auto_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%3 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref to i8* | |
call void @llvm.memset.p0i8.i64(i8* %3, i8 29, i64 8, i32 8, i1 false) | |
store %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8 | |
%4 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1 | |
%5 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %4, i32 0, i32 0 | |
%6 = call dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref21h10142749499467380776E"(%"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8) %5) | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %6, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8 | |
%7 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8, !nonnull !1 | |
%8 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %7, align 8 | |
%9 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %8 to {}* | |
store {}* %9, {}** %thin, align 8 | |
%10 = load {}*, {}** %thin, align 8 | |
%11 = ptrtoint {}* %10 to i64 | |
%12 = icmp eq i64 %11, 2097865012304223517 | |
br i1 %12, label %then-block-123-, label %next-block | |
then-block-123-: ; preds = %entry-block | |
br label %clean_ast_106_ | |
clean_ast_106_: ; preds = %clean_ast_106_1, %then-block-123- | |
br label %return | |
next-block: ; preds = %entry-block | |
%13 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1 | |
%14 = call dereferenceable(48) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h14200732739658287836E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %13) | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %14, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %2, align 8 | |
%15 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %2, align 8, !nonnull !1 | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %15, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8 | |
%16 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8, !nonnull !1 | |
%17 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %16, i32 0, i32 0 | |
%18 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_sub20h8772de3cc84a5649T1KE(%"1.core::sync::atomic::AtomicUsize"* dereferenceable(8) %17, i64 1, i8 1) | |
store i64 %18, i64* %1, align 8 | |
%19 = load i64, i64* %1, align 8 | |
%20 = icmp ne i64 %19, 1 | |
br i1 %20, label %then-block-136-, label %next-block2 | |
then-block-136-: ; preds = %next-block | |
br label %clean_ast_106_1 | |
clean_ast_106_1: ; preds = %then-block-136- | |
br label %clean_ast_106_ | |
next-block2: ; preds = %next-block | |
call void @_ZN4sync6atomic5fence20hfb767f14e632fab6sdLE(i8 2) | |
%21 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1 | |
call void @"_ZN3arc12Arc$LT$T$GT$9drop_slow21h13488544945975673059E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(8) %21) | |
br label %return | |
return: ; preds = %next-block2, %clean_ast_106_ | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref21h10142749499467380776E"(%"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* | |
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** | |
store %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %0, %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"** %self, align 8 | |
%1 = load %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"*, %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %1, i32 0, i32 0 | |
%3 = call dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref20h5759148841069799584E"(%"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8) %2) | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %3, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8 | |
%4 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8, !nonnull !1 | |
ret %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %4 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref20h5759148841069799584E"(%"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* | |
%inner = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** | |
store %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %0, %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"** %self, align 8 | |
%1 = load %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"*, %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %1, i32 0, i32 0 | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %2, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %inner | |
%3 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %inner, align 8, !nonnull !1 | |
ret %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %3 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal dereferenceable(48) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h14200732739658287836E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** | |
store %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8 | |
%1 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1, i32 0, i32 0 | |
%3 = call dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref21h10142749499467380776E"(%"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8) %2) | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %3, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8 | |
%4 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8, !nonnull !1 | |
%5 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %4, align 8 | |
ret %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %5 | |
} | |
; Function Attrs: noinline uwtable | |
define internal void @"_ZN3arc12Arc$LT$T$GT$9drop_slow21h13488544945975673059E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(8)) unnamed_addr #5 { | |
entry-block: | |
%self = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%ptr = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** | |
%1 = alloca i64 | |
%2 = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%auto_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%3 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref to i8* | |
call void @llvm.memset.p0i8.i64(i8* %3, i8 29, i64 8, i32 8, i1 false) | |
%4 = alloca i64 | |
%5 = alloca i64 | |
store %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8 | |
%6 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1 | |
%7 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %6, i32 0, i32 0 | |
%8 = call dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref21h10142749499467380776E"(%"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8) %7) | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %8, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8 | |
%9 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8, !nonnull !1 | |
%10 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %9, align 8 | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %10, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8 | |
%11 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8 | |
%12 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %11, i32 0, i32 2 | |
call void @"_ZN167core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$9drop.471017h843efe4baa1ac214E"(%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %12) | |
%13 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1 | |
%14 = call dereferenceable(48) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h14200732739658287836E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %13) | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %14, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %2, align 8 | |
%15 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %2, align 8, !nonnull !1 | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %15, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8 | |
%16 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8, !nonnull !1 | |
%17 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %16, i32 0, i32 1 | |
%18 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_sub20h8772de3cc84a5649T1KE(%"1.core::sync::atomic::AtomicUsize"* dereferenceable(8) %17, i64 1, i8 1) | |
store i64 %18, i64* %1, align 8 | |
%19 = load i64, i64* %1, align 8 | |
%20 = icmp eq i64 %19, 1 | |
br i1 %20, label %then-block-503-, label %next-block | |
then-block-503-: ; preds = %entry-block | |
call void @_ZN4sync6atomic5fence20hfb767f14e632fab6sdLE(i8 2) | |
%21 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8 | |
%22 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %21 to i8* | |
%23 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8 | |
%24 = call i64 @_ZN3mem11size_of_val20h5454469079723103408E(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(48) %23) | |
store i64 %24, i64* %4, align 8 | |
%25 = load i64, i64* %4, align 8 | |
%26 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8 | |
%27 = call i64 @_ZN3mem12align_of_val21h11275424338360675050E(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(48) %26) | |
store i64 %27, i64* %5, align 8 | |
%28 = load i64, i64* %5, align 8 | |
call void @_ZN4heap10deallocate20hb6b00bc54f0213287eaE(i8* %22, i64 %25, i64 %28) | |
br label %next-block | |
next-block: ; preds = %entry-block, %then-block-503- | |
ret void | |
} | |
define internal void @"_ZN167core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$9drop.471017h843efe4baa1ac214E"(%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>", %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %0, i32 0, i32 0 | |
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.471317h0c1536054c4667a3E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %1) | |
ret void | |
} | |
define internal void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.471317h0c1536054c4667a3E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>", %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %0, i32 0, i32 0 | |
%2 = load i64, i64* %1 | |
switch i64 %2, label %enum-iter-ret-void [ | |
i64 0, label %enum-iter-variant-0 | |
i64 1, label %enum-iter-variant-1 | |
] | |
enum-iter-ret-void: ; preds = %entry-block | |
ret void | |
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0 | |
ret void | |
enum-iter-variant-0: ; preds = %entry-block | |
br label %enum-iter-next | |
enum-iter-variant-1: ; preds = %entry-block | |
%3 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %0 to { i64, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }* | |
%4 = getelementptr inbounds { i64, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }, { i64, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }* %3, i32 0, i32 1 | |
call void @"_ZN109core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.471617h59b33c617b2df913E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %4) | |
br label %enum-iter-next | |
} | |
define internal void @"_ZN109core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.471617h59b33c617b2df913E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>", %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0 | |
%2 = load i8, i8* %1 | |
switch i8 %2, label %enum-iter-ret-void [ | |
i8 0, label %enum-iter-variant-0 | |
i8 1, label %enum-iter-variant-1 | |
] | |
enum-iter-ret-void: ; preds = %entry-block | |
ret void | |
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0 | |
ret void | |
enum-iter-variant-0: ; preds = %entry-block | |
%3 = bitcast %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, i32 }* | |
%4 = getelementptr inbounds { i8, i32 }, { i8, i32 }* %3, i32 0, i32 1 | |
br label %enum-iter-next | |
enum-iter-variant-1: ; preds = %entry-block | |
%5 = bitcast %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, { i8*, void (i8*)** } }* | |
%6 = getelementptr inbounds { i8, { i8*, void (i8*)** } }, { i8, { i8*, void (i8*)** } }* %5, i32 0, i32 1 | |
call void @"_ZN70Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$9drop.471917ha2961773cdf5e193E"({ i8*, void (i8*)** }* %6) | |
br label %enum-iter-next | |
} | |
define internal void @"_ZN70Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$9drop.471917ha2961773cdf5e193E"({ i8*, void (i8*)** }*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 0 | |
%2 = load i8*, i8** %1 | |
%3 = ptrtoint i8* %2 to i64 | |
%4 = icmp ne i64 %3, 2097865012304223517 | |
br i1 %4, label %cond, label %next | |
next: ; preds = %next1, %entry-block | |
ret void | |
cond: ; preds = %entry-block | |
call void @"_ZN59core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static9drop.472217h60131eca772499a0E"({ i8*, void (i8*)** }* %0) | |
%5 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 1 | |
%6 = load void (i8*)**, void (i8*)*** %5 | |
%7 = bitcast void (i8*)** %6 to i64* | |
%8 = getelementptr inbounds i64, i64* %7, i32 1 | |
%9 = getelementptr inbounds i64, i64* %7, i32 2 | |
%10 = load i64, i64* %8 | |
%11 = load i64, i64* %9 | |
%12 = icmp ne i64 %10, 0 | |
br i1 %12, label %cond2, label %next1 | |
next1: ; preds = %cond2, %cond | |
br label %next | |
cond2: ; preds = %cond | |
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %2, i64 %10, i64 %11) | |
br label %next1 | |
} | |
define internal void @"_ZN59core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static9drop.472217h60131eca772499a0E"({ i8*, void (i8*)** }*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 0 | |
%2 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 1 | |
%3 = load void (i8*)**, void (i8*)*** %2 | |
%4 = load void (i8*)*, void (i8*)** %3 | |
%5 = load i8*, i8** %1 | |
call void %4(i8* %5) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN3mem11size_of_val20h5454469079723103408E(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(48)) unnamed_addr #1 { | |
entry-block: | |
%val = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %val, align 8 | |
%1 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %val, align 8, !nonnull !1 | |
ret i64 48 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN3mem12align_of_val21h11275424338360675050E(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(48)) unnamed_addr #1 { | |
entry-block: | |
%val = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %val, align 8 | |
%1 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %val, align 8, !nonnull !1 | |
ret i64 8 | |
} | |
define internal void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.472417h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, i32 0, i32 0 | |
ret void | |
} | |
; Function Attrs: cold noinline noreturn uwtable | |
define internal void @_ZN6result13unwrap_failed20h1876135566383573108E(i8* noalias nonnull readonly, i64, %"2.std::io::error::Error"* noalias nocapture dereferenceable(16) %error) unnamed_addr #7 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%msg = alloca %str_slice | |
%2 = alloca %"1.core::fmt::Arguments" | |
%3 = alloca { %str_slice*, i64 } | |
%4 = alloca [2 x %"1.core::fmt::ArgumentV1"] | |
%5 = alloca { %str_slice*, %"2.std::io::error::Error"* } | |
%__llmatch = alloca %str_slice** | |
%__arg0 = alloca %str_slice* | |
%__llmatch1 = alloca %"2.std::io::error::Error"** | |
%__arg1 = alloca %"2.std::io::error::Error"* | |
%6 = alloca { i8*, i32 } | |
%__coerce_target = alloca { %"1.core::fmt::ArgumentV1"*, i64 } | |
%7 = getelementptr inbounds %str_slice, %str_slice* %msg, i32 0, i32 0 | |
store i8* %0, i8** %7 | |
%8 = getelementptr inbounds %str_slice, %str_slice* %msg, i32 0, i32 1 | |
store i64 %1, i64* %8 | |
%9 = bitcast { %str_slice*, i64 }* %3 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* bitcast ({ %str_slice*, i64 }* @_ZN6result13unwrap_failed15__STATIC_FMTSTR20hf92ae00c19516543Q5OE to i8*), i64 16, i32 8, i1 false) | |
%10 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %3, i32 0, i32 0 | |
%11 = load %str_slice*, %str_slice** %10 | |
%12 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %3, i32 0, i32 1 | |
%13 = load i64, i64* %12 | |
%14 = getelementptr inbounds { %str_slice*, %"2.std::io::error::Error"* }, { %str_slice*, %"2.std::io::error::Error"* }* %5, i32 0, i32 0 | |
store %str_slice* %msg, %str_slice** %14, align 8 | |
%15 = getelementptr inbounds { %str_slice*, %"2.std::io::error::Error"* }, { %str_slice*, %"2.std::io::error::Error"* }* %5, i32 0, i32 1 | |
store %"2.std::io::error::Error"* %error, %"2.std::io::error::Error"** %15, align 8 | |
%16 = getelementptr inbounds { %str_slice*, %"2.std::io::error::Error"* }, { %str_slice*, %"2.std::io::error::Error"* }* %5, i32 0, i32 0 | |
%17 = getelementptr inbounds { %str_slice*, %"2.std::io::error::Error"* }, { %str_slice*, %"2.std::io::error::Error"* }* %5, i32 0, i32 1 | |
store %"2.std::io::error::Error"** %17, %"2.std::io::error::Error"*** %__llmatch1 | |
store %str_slice** %16, %str_slice*** %__llmatch | |
br label %case_body | |
case_body: ; preds = %entry-block | |
%18 = load %str_slice**, %str_slice*** %__llmatch | |
%19 = load %str_slice*, %str_slice** %18, align 8, !nonnull !1 | |
store %str_slice* %19, %str_slice** %__arg0, align 8 | |
%20 = load %"2.std::io::error::Error"**, %"2.std::io::error::Error"*** %__llmatch1 | |
%21 = load %"2.std::io::error::Error"*, %"2.std::io::error::Error"** %20, align 8, !nonnull !1 | |
store %"2.std::io::error::Error"* %21, %"2.std::io::error::Error"** %__arg1, align 8 | |
%22 = getelementptr inbounds [2 x %"1.core::fmt::ArgumentV1"], [2 x %"1.core::fmt::ArgumentV1"]* %4, i32 0, i32 0 | |
%23 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %22, i32 0 | |
%24 = load %str_slice*, %str_slice** %__arg0, align 8, !nonnull !1 | |
invoke void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new20h3328580461289412312E"(%"1.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16) %23, %str_slice* noalias readonly dereferenceable(16) %24, i8 (%str_slice*, %"1.core::fmt::Formatter"*)* @"_ZN3fmt25_$RF$$u27$a$u20$T.Display3fmt20h1949050574023800080E") | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %case_body | |
%25 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %22, i32 1 | |
%26 = load %"2.std::io::error::Error"*, %"2.std::io::error::Error"** %__arg1, align 8, !nonnull !1 | |
invoke void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new21h11375164507710303157E"(%"1.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16) %25, %"2.std::io::error::Error"* noalias readonly dereferenceable(16) %26, i8 (%"2.std::io::error::Error"*, %"1.core::fmt::Formatter"*)* @_ZN2io5error24Error...core..fmt..Debug3fmt20h60fd01dad14aa91fkhgE) | |
to label %normal-return2 unwind label %unwind_custom_ | |
unwind_custom_: ; preds = %normal-return3, %join, %normal-return, %case_body | |
%27 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %27, { i8*, i32 }* %6 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%28 = load { i8*, i32 }, { i8*, i32 }* %6 | |
resume { i8*, i32 } %28 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @_ZN21std..io..error..Error9drop.472817hb777fe86563aa27aE(%"2.std::io::error::Error"* %error) | |
br label %resume | |
normal-return2: ; preds = %normal-return | |
br label %join | |
join: ; preds = %normal-return2 | |
%29 = bitcast [2 x %"1.core::fmt::ArgumentV1"]* %4 to %"1.core::fmt::ArgumentV1"* | |
%30 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0 | |
store %"1.core::fmt::ArgumentV1"* %29, %"1.core::fmt::ArgumentV1"** %30 | |
%31 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1 | |
store i64 2, i64* %31 | |
%32 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0 | |
%33 = load %"1.core::fmt::ArgumentV1"*, %"1.core::fmt::ArgumentV1"** %32 | |
%34 = getelementptr inbounds { %"1.core::fmt::ArgumentV1"*, i64 }, { %"1.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1 | |
%35 = load i64, i64* %34 | |
invoke void @"_ZN3fmt23Arguments$LT$$u27$a$GT$6new_v120he832f0357fe73cd4nLWE"(%"1.core::fmt::Arguments"* noalias nocapture sret dereferenceable(48) %2, %str_slice* noalias nonnull readonly %11, i64 %13, %"1.core::fmt::ArgumentV1"* noalias nonnull readonly %33, i64 %35) | |
to label %normal-return3 unwind label %unwind_custom_ | |
normal-return3: ; preds = %join | |
invoke void @_ZN9panicking9panic_fmt20hd3ab350bce4886e96YLE(%"1.core::fmt::Arguments"* noalias nocapture dereferenceable(48) %2, { %str_slice, i32 }* noalias readonly dereferenceable(24) @_ZN6result13unwrap_failed10_FILE_LINE20h4a56c969ed2d4d85A5OE) | |
to label %normal-return4 unwind label %unwind_custom_ | |
normal-return4: ; preds = %normal-return3 | |
unreachable | |
} | |
; Function Attrs: cold noinline noreturn | |
declare void @_ZN9panicking9panic_fmt20hd3ab350bce4886e96YLE(%"1.core::fmt::Arguments"* noalias nocapture dereferenceable(48), { %str_slice, i32 }* noalias readonly dereferenceable(24)) unnamed_addr #4 | |
; Function Attrs: uwtable | |
define internal void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new20h3328580461289412312E"(%"1.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16), %str_slice* noalias readonly dereferenceable(16), i8 (%str_slice*, %"1.core::fmt::Formatter"*)*) unnamed_addr #0 { | |
entry-block: | |
%x = alloca %str_slice* | |
%f = alloca i8 (%str_slice*, %"1.core::fmt::Formatter"*)* | |
store %str_slice* %1, %str_slice** %x, align 8 | |
store i8 (%str_slice*, %"1.core::fmt::Formatter"*)* %2, i8 (%str_slice*, %"1.core::fmt::Formatter"*)** %f, align 8 | |
%3 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %0, i32 0, i32 1 | |
%4 = load i8 (%str_slice*, %"1.core::fmt::Formatter"*)*, i8 (%str_slice*, %"1.core::fmt::Formatter"*)** %f, align 8 | |
%5 = bitcast i8 (%str_slice*, %"1.core::fmt::Formatter"*)* %4 to i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)* | |
store i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)* %5, i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)** %3 | |
%6 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %0, i32 0, i32 0 | |
%7 = load %str_slice*, %str_slice** %x, align 8, !nonnull !1 | |
%8 = bitcast %str_slice* %7 to %"1.core::fmt::Void"* | |
store %"1.core::fmt::Void"* %8, %"1.core::fmt::Void"** %6 | |
ret void | |
} | |
; Function Attrs: uwtable | |
define internal i8 @"_ZN3fmt25_$RF$$u27$a$u20$T.Display3fmt20h1949050574023800080E"(%str_slice* noalias readonly dereferenceable(16), %"1.core::fmt::Formatter"* dereferenceable(96)) unnamed_addr #0 { | |
entry-block: | |
%sret_slot = alloca %"1.core::result::Result<(), core::fmt::Error>" | |
%self = alloca %str_slice* | |
%f = alloca %"1.core::fmt::Formatter"* | |
store %str_slice* %0, %str_slice** %self, align 8 | |
store %"1.core::fmt::Formatter"* %1, %"1.core::fmt::Formatter"** %f, align 8 | |
%2 = load %str_slice*, %str_slice** %self, align 8, !nonnull !1 | |
%3 = getelementptr inbounds %str_slice, %str_slice* %2, i32 0, i32 0 | |
%4 = load i8*, i8** %3 | |
%5 = getelementptr inbounds %str_slice, %str_slice* %2, i32 0, i32 1 | |
%6 = load i64, i64* %5 | |
%7 = load %"1.core::fmt::Formatter"*, %"1.core::fmt::Formatter"** %f, align 8, !nonnull !1 | |
%8 = call i8 @_ZN3fmt11str.Display3fmt20heb4a20d360344d3ePoXE(i8* noalias nonnull readonly %4, i64 %6, %"1.core::fmt::Formatter"* dereferenceable(96) %7) | |
%9 = bitcast %"1.core::result::Result<(), core::fmt::Error>"* %sret_slot to i8* | |
store i8 %8, i8* %9, align 1 | |
%10 = bitcast %"1.core::result::Result<(), core::fmt::Error>"* %sret_slot to i8* | |
%11 = load i8, i8* %10, align 1 | |
ret i8 %11 | |
} | |
declare i8 @_ZN3fmt11str.Display3fmt20heb4a20d360344d3ePoXE(i8* noalias nonnull readonly, i64, %"1.core::fmt::Formatter"* dereferenceable(96)) unnamed_addr | |
define internal void @_ZN21std..io..error..Error9drop.472817hb777fe86563aa27aE(%"2.std::io::error::Error"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"2.std::io::error::Error", %"2.std::io::error::Error"* %0, i32 0, i32 0 | |
call void @_ZN20std..io..error..Repr9drop.473117h2dc9f10a48be79e5E(%"2.std::io::error::Repr"* %1) | |
ret void | |
} | |
define internal void @_ZN20std..io..error..Repr9drop.473117h2dc9f10a48be79e5E(%"2.std::io::error::Repr"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"2.std::io::error::Repr", %"2.std::io::error::Repr"* %0, i32 0, i32 0 | |
%2 = load i8, i8* %1 | |
switch i8 %2, label %enum-iter-ret-void [ | |
i8 0, label %enum-iter-variant-0 | |
i8 1, label %enum-iter-variant-1 | |
] | |
enum-iter-ret-void: ; preds = %entry-block | |
ret void | |
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0 | |
ret void | |
enum-iter-variant-0: ; preds = %entry-block | |
%3 = bitcast %"2.std::io::error::Repr"* %0 to { i8, i32 }* | |
%4 = getelementptr inbounds { i8, i32 }, { i8, i32 }* %3, i32 0, i32 1 | |
br label %enum-iter-next | |
enum-iter-variant-1: ; preds = %entry-block | |
%5 = bitcast %"2.std::io::error::Repr"* %0 to { i8, %"2.std::io::error::Custom"* }* | |
%6 = getelementptr inbounds { i8, %"2.std::io::error::Custom"* }, { i8, %"2.std::io::error::Custom"* }* %5, i32 0, i32 1 | |
call void @"_ZN33Box$LT$std..io..error..Custom$GT$9drop.473417h92994862b3cc7ac5E"(%"2.std::io::error::Custom"** %6) | |
br label %enum-iter-next | |
} | |
define internal void @"_ZN33Box$LT$std..io..error..Custom$GT$9drop.473417h92994862b3cc7ac5E"(%"2.std::io::error::Custom"**) unnamed_addr { | |
entry-block: | |
%1 = load %"2.std::io::error::Custom"*, %"2.std::io::error::Custom"** %0 | |
%2 = ptrtoint %"2.std::io::error::Custom"* %1 to i64 | |
%3 = icmp ne i64 %2, 2097865012304223517 | |
br i1 %3, label %cond, label %next | |
next: ; preds = %cond, %entry-block | |
ret void | |
cond: ; preds = %entry-block | |
call void @_ZN22std..io..error..Custom9drop.473717he111f6ee8acc5729E(%"2.std::io::error::Custom"* %1) | |
%4 = bitcast %"2.std::io::error::Custom"* %1 to i8* | |
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %4, i64 24, i64 8) | |
br label %next | |
} | |
define internal void @_ZN22std..io..error..Custom9drop.473717he111f6ee8acc5729E(%"2.std::io::error::Custom"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"2.std::io::error::Custom", %"2.std::io::error::Custom"* %0, i32 0, i32 0 | |
%2 = getelementptr inbounds %"2.std::io::error::Custom", %"2.std::io::error::Custom"* %0, i32 0, i32 1 | |
call void @"_ZN92Box$LT$std..error..Error$u20$$u2b$$u20$Send$u20$$u2b$$u20$Sync$u20$$u2b$$u20$$u27$static$GT$9drop.474017hc1265265655031b0E"({ i8*, void (i8*)** }* %2) | |
ret void | |
} | |
define internal void @"_ZN92Box$LT$std..error..Error$u20$$u2b$$u20$Send$u20$$u2b$$u20$Sync$u20$$u2b$$u20$$u27$static$GT$9drop.474017hc1265265655031b0E"({ i8*, void (i8*)** }*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 0 | |
%2 = load i8*, i8** %1 | |
%3 = ptrtoint i8* %2 to i64 | |
%4 = icmp ne i64 %3, 2097865012304223517 | |
br i1 %4, label %cond, label %next | |
next: ; preds = %next1, %entry-block | |
ret void | |
cond: ; preds = %entry-block | |
call void @"_ZN81std..error..Error$u20$$u2b$$u20$Send$u20$$u2b$$u20$Sync$u20$$u2b$$u20$$u27$static9drop.474317h5ae6b6e090aaf2f6E"({ i8*, void (i8*)** }* %0) | |
%5 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 1 | |
%6 = load void (i8*)**, void (i8*)*** %5 | |
%7 = bitcast void (i8*)** %6 to i64* | |
%8 = getelementptr inbounds i64, i64* %7, i32 1 | |
%9 = getelementptr inbounds i64, i64* %7, i32 2 | |
%10 = load i64, i64* %8 | |
%11 = load i64, i64* %9 | |
%12 = icmp ne i64 %10, 0 | |
br i1 %12, label %cond2, label %next1 | |
next1: ; preds = %cond2, %cond | |
br label %next | |
cond2: ; preds = %cond | |
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %2, i64 %10, i64 %11) | |
br label %next1 | |
} | |
define internal void @"_ZN81std..error..Error$u20$$u2b$$u20$Send$u20$$u2b$$u20$Sync$u20$$u2b$$u20$$u27$static9drop.474317h5ae6b6e090aaf2f6E"({ i8*, void (i8*)** }*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 0 | |
%2 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 1 | |
%3 = load void (i8*)**, void (i8*)*** %2 | |
%4 = load void (i8*)*, void (i8*)** %3 | |
%5 = load i8*, i8** %1 | |
call void %4(i8* %5) | |
ret void | |
} | |
; Function Attrs: uwtable | |
define internal void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new21h11375164507710303157E"(%"1.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16), %"2.std::io::error::Error"* noalias readonly dereferenceable(16), i8 (%"2.std::io::error::Error"*, %"1.core::fmt::Formatter"*)*) unnamed_addr #0 { | |
entry-block: | |
%x = alloca %"2.std::io::error::Error"* | |
%f = alloca i8 (%"2.std::io::error::Error"*, %"1.core::fmt::Formatter"*)* | |
store %"2.std::io::error::Error"* %1, %"2.std::io::error::Error"** %x, align 8 | |
store i8 (%"2.std::io::error::Error"*, %"1.core::fmt::Formatter"*)* %2, i8 (%"2.std::io::error::Error"*, %"1.core::fmt::Formatter"*)** %f, align 8 | |
%3 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %0, i32 0, i32 1 | |
%4 = load i8 (%"2.std::io::error::Error"*, %"1.core::fmt::Formatter"*)*, i8 (%"2.std::io::error::Error"*, %"1.core::fmt::Formatter"*)** %f, align 8 | |
%5 = bitcast i8 (%"2.std::io::error::Error"*, %"1.core::fmt::Formatter"*)* %4 to i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)* | |
store i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)* %5, i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)** %3 | |
%6 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %0, i32 0, i32 0 | |
%7 = load %"2.std::io::error::Error"*, %"2.std::io::error::Error"** %x, align 8, !nonnull !1 | |
%8 = bitcast %"2.std::io::error::Error"* %7 to %"1.core::fmt::Void"* | |
store %"1.core::fmt::Void"* %8, %"1.core::fmt::Void"** %6 | |
ret void | |
} | |
declare i8 @_ZN2io5error24Error...core..fmt..Debug3fmt20h60fd01dad14aa91fkhgE(%"2.std::io::error::Error"* noalias readonly dereferenceable(16), %"1.core::fmt::Formatter"* dereferenceable(96)) unnamed_addr | |
define internal void @"_ZN91core..result..Result$LT$std..thread..JoinHandle$LT$i32$GT$$C$$u20$std..io..error..Error$GT$9drop.475017hc4174e44d68d042eE"(%"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>", %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %0, i32 0, i32 0 | |
%2 = load i64, i64* %1 | |
switch i64 %2, label %enum-iter-ret-void [ | |
i64 0, label %enum-iter-variant-0 | |
i64 1, label %enum-iter-variant-1 | |
] | |
enum-iter-ret-void: ; preds = %entry-block | |
ret void | |
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0 | |
ret void | |
enum-iter-variant-0: ; preds = %entry-block | |
%3 = bitcast %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %0 to { i64, %"2.std::thread::JoinHandle<i32>" }* | |
%4 = getelementptr inbounds { i64, %"2.std::thread::JoinHandle<i32>" }, { i64, %"2.std::thread::JoinHandle<i32>" }* %3, i32 0, i32 1 | |
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.432517h7f68f48c9da6347cE"(%"2.std::thread::JoinHandle<i32>"* %4) | |
br label %enum-iter-next | |
enum-iter-variant-1: ; preds = %entry-block | |
%5 = bitcast %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %0 to { i64, %"2.std::io::error::Error" }* | |
%6 = getelementptr inbounds { i64, %"2.std::io::error::Error" }, { i64, %"2.std::io::error::Error" }* %5, i32 0, i32 1 | |
call void @_ZN21std..io..error..Error9drop.472817hb777fe86563aa27aE(%"2.std::io::error::Error"* %6) | |
br label %enum-iter-next | |
} | |
; Function Attrs: uwtable | |
define internal void @_ZN6thread7Builder5spawn21h10742646647574140955E(%"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* noalias nocapture sret dereferenceable(48), %"2.std::thread::Builder"* noalias nocapture dereferenceable(40) %self, %closure) unnamed_addr #0 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%llretslotptr = alloca %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* | |
store %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %0, %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"** %llretslotptr | |
%f = alloca %closure | |
%iret_slot = alloca %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>" | |
%name = alloca %"1.core::option::Option<collections::string::String>" | |
%stack_size = alloca %"1.core::option::Option<usize>" | |
%stack_size1 = alloca i64 | |
%arg = alloca %"1.core::option::Option<usize>" | |
%2 = alloca i64 | |
%3 = alloca { i8*, i32 } | |
%my_thread = alloca %"2.std::thread::Thread" | |
%arg3 = alloca %"1.core::option::Option<collections::string::String>" | |
%their_thread = alloca %"2.std::thread::Thread" | |
%my_packet = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" | |
%const = alloca %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>" | |
%their_packet = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" | |
%main = alloca %closure.0 | |
%4 = alloca %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>" | |
%arg16 = alloca %closure.0 | |
%val = alloca %"2.std::sys::thread::Thread"* | |
%err = alloca %"2.std::io::error::Error"* | |
%ret_slot = alloca %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>" | |
%arg22 = alloca %"2.std::io::error::Error" | |
%5 = getelementptr inbounds %"2.std::thread::Builder", %"2.std::thread::Builder"* %self, i32 0, i32 0 | |
%6 = bitcast %"1.core::option::Option<collections::string::String>"* %5 to i8* | |
%7 = bitcast %"1.core::option::Option<collections::string::String>"* %name to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %7, i8* %6, i64 24, i32 8, i1 false) | |
%8 = bitcast %"1.core::option::Option<collections::string::String>"* %5 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %8, i8 29, i64 24, i32 8, i1 false) | |
%9 = getelementptr inbounds %"2.std::thread::Builder", %"2.std::thread::Builder"* %self, i32 0, i32 1 | |
%10 = bitcast %"1.core::option::Option<usize>"* %9 to i8* | |
%11 = bitcast %"1.core::option::Option<usize>"* %stack_size to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %11, i8* %10, i64 16, i32 8, i1 false) | |
%12 = bitcast %"1.core::option::Option<usize>"* %stack_size to i8* | |
%13 = bitcast %"1.core::option::Option<usize>"* %arg to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %13, i8* %12, i64 16, i32 8, i1 false) | |
%14 = invoke i64 @_ZN10sys_common4util9min_stack20h86ca992492bbcc24YltE() | |
to label %normal-return unwind label %unwind_ast_9171_ | |
normal-return: ; preds = %entry-block | |
store i64 %14, i64* %2, align 8 | |
%15 = load i64, i64* %2, align 8 | |
%16 = invoke i64 @"_ZN6option15Option$LT$T$GT$9unwrap_or21h14126731333190218422E"(%"1.core::option::Option<usize>"* noalias nocapture dereferenceable(16) %arg, i64 %15) | |
to label %normal-return2 unwind label %unwind_ast_9171_ | |
unwind_ast_9171_: ; preds = %normal-return, %entry-block | |
%17 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %17, { i8*, i32 }* %3 | |
br label %clean_ast_9171_ | |
resume: ; preds = %clean_custom_ | |
%18 = load { i8*, i32 }, { i8*, i32 }* %3 | |
resume { i8*, i32 } %18 | |
clean_custom_: ; preds = %clean_ast_9171_ | |
call void @_ZN20std..thread..Builder9drop.477017h4f26505035c95845E(%"2.std::thread::Builder"* %self) | |
br label %resume | |
clean_ast_9171_: ; preds = %clean_ast_9171_6, %unwind_ast_9171_ | |
call void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.444017he0121e2e024daed1E"(%"1.core::option::Option<collections::string::String>"* %name) | |
br label %clean_custom_ | |
normal-return2: ; preds = %normal-return | |
store i64 %16, i64* %stack_size1, align 8 | |
%19 = bitcast %"1.core::option::Option<collections::string::String>"* %name to i8* | |
%20 = bitcast %"1.core::option::Option<collections::string::String>"* %arg3 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %20, i8* %19, i64 24, i32 8, i1 false) | |
%21 = bitcast %"1.core::option::Option<collections::string::String>"* %name to i8* | |
call void @llvm.memset.p0i8.i64(i8* %21, i8 29, i64 24, i32 8, i1 false) | |
%22 = invoke i64 @_ZN6thread6Thread3new20hf1a305e08ff0b35aLGbE(%"1.core::option::Option<collections::string::String>"* noalias nocapture dereferenceable(24) %arg3) | |
to label %normal-return4 unwind label %unwind_ast_9171_5 | |
normal-return4: ; preds = %normal-return2 | |
%23 = bitcast %"2.std::thread::Thread"* %my_thread to i64* | |
store i64 %22, i64* %23, align 8 | |
%24 = invoke i64 @_ZN6thread27Thread...core..clone..Clone5clone20h7c83e9af70ae2e26oGbE(%"2.std::thread::Thread"* noalias readonly dereferenceable(8) %my_thread) | |
to label %normal-return7 unwind label %unwind_ast_9171_8 | |
unwind_ast_9171_5: ; preds = %normal-return2 | |
%25 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %25, { i8*, i32 }* %3 | |
br label %clean_ast_9171_6 | |
clean_ast_9171_6: ; preds = %clean_ast_9171_9, %unwind_ast_9171_5 | |
br label %clean_ast_9171_ | |
normal-return7: ; preds = %normal-return4 | |
%26 = bitcast %"2.std::thread::Thread"* %their_thread to i64* | |
store i64 %24, i64* %26, align 8 | |
%27 = bitcast %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %const to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %27, i8* bitcast ({ { i64, [24 x i8] } }* @const4848 to i8*), i64 32, i32 8, i1 false) | |
%28 = invoke i64 @"_ZN3arc12Arc$LT$T$GT$3new21h10152365789534857938E"(%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* noalias nocapture dereferenceable(32) %const) | |
to label %normal-return10 unwind label %unwind_ast_9171_11 | |
unwind_ast_9171_8: ; preds = %normal-return4 | |
%29 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %29, { i8*, i32 }* %3 | |
br label %clean_ast_9171_9 | |
clean_ast_9171_9: ; preds = %clean_ast_9171_12, %unwind_ast_9171_8 | |
call void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"* %my_thread) | |
br label %clean_ast_9171_6 | |
normal-return10: ; preds = %normal-return7 | |
%30 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet to i64* | |
store i64 %28, i64* %30, align 8 | |
%31 = invoke i64 @"_ZN3arc18Arc$LT$T$GT$.Clone5clone20h6788750237553431627E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %my_packet) | |
to label %normal-return13 unwind label %unwind_ast_9171_14 | |
unwind_ast_9171_11: ; preds = %normal-return7 | |
%32 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %32, { i8*, i32 }* %3 | |
br label %clean_ast_9171_12 | |
clean_ast_9171_12: ; preds = %clean_ast_9171_15, %unwind_ast_9171_11 | |
call void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"* %their_thread) | |
br label %clean_ast_9171_9 | |
normal-return13: ; preds = %normal-return10 | |
%33 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet to i64* | |
store i64 %31, i64* %33, align 8 | |
%34 = getelementptr inbounds %closure.0, %closure.0* %main, i32 0, i32 0 | |
%35 = bitcast %"2.std::thread::Thread"* %their_thread to i8* | |
%36 = bitcast %"2.std::thread::Thread"* %34 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %36, i8* %35, i64 8, i32 8, i1 false) | |
%37 = bitcast %"2.std::thread::Thread"* %their_thread to i8* | |
call void @llvm.memset.p0i8.i64(i8* %37, i8 29, i64 8, i32 8, i1 false) | |
%38 = getelementptr inbounds %closure.0, %closure.0* %main, i32 0, i32 1 | |
%39 = getelementptr inbounds %closure.0, %closure.0* %main, i32 0, i32 2 | |
%40 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet to i8* | |
%41 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %39 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %41, i8* %40, i64 8, i32 8, i1 false) | |
%42 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet to i8* | |
call void @llvm.memset.p0i8.i64(i8* %42, i8 29, i64 8, i32 8, i1 false) | |
%43 = bitcast %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %iret_slot to { i64, %"2.std::thread::JoinHandle<i32>" }* | |
%44 = getelementptr inbounds { i64, %"2.std::thread::JoinHandle<i32>" }, { i64, %"2.std::thread::JoinHandle<i32>" }* %43, i32 0, i32 1 | |
%45 = getelementptr inbounds %"2.std::thread::JoinHandle<i32>", %"2.std::thread::JoinHandle<i32>"* %44, i32 0, i32 0 | |
%46 = getelementptr inbounds %"2.std::thread::JoinInner<i32>", %"2.std::thread::JoinInner<i32>"* %45, i32 0, i32 0 | |
%47 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %46 to { i64, %"2.std::sys::thread::Thread" }* | |
%48 = getelementptr inbounds { i64, %"2.std::sys::thread::Thread" }, { i64, %"2.std::sys::thread::Thread" }* %47, i32 0, i32 1 | |
%49 = load i64, i64* %stack_size1, align 8 | |
%50 = bitcast %closure.0* %main to i8* | |
%51 = bitcast %closure.0* %arg16 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %51, i8* %50, i64 16, i32 8, i1 false) | |
%52 = bitcast %closure.0* %main to i8* | |
call void @llvm.memset.p0i8.i64(i8* %52, i8 29, i64 16, i32 8, i1 false) | |
invoke void @_ZN3sys6thread6Thread3new21h15728162040669553108E(%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* noalias nocapture sret dereferenceable(24) %4, i64 %49, %closure.0* noalias nocapture dereferenceable(16) %arg16) | |
to label %normal-return17 unwind label %unwind_ast_9171_18 | |
unwind_ast_9171_14: ; preds = %normal-return10 | |
%53 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %53, { i8*, i32 }* %3 | |
br label %clean_ast_9171_15 | |
clean_ast_9171_15: ; preds = %clean_ast_9171_19, %unwind_ast_9171_14 | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet) | |
br label %clean_ast_9171_12 | |
normal-return17: ; preds = %normal-return13 | |
%54 = getelementptr inbounds %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>", %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %4, i32 0, i32 0 | |
%55 = load i64, i64* %54, !range !2 | |
switch i64 %55, label %match_else [ | |
i64 0, label %match_case | |
i64 1, label %match_case21 | |
] | |
unwind_ast_9171_18: ; preds = %normal-return13 | |
%56 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %56, { i8*, i32 }* %3 | |
br label %clean_ast_9171_19 | |
clean_ast_9171_19: ; preds = %clean_ast_9171_24, %unwind_ast_9171_18 | |
call void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.499017h03213aa6cad857e4E"(%closure.0* %main) | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet) | |
br label %clean_ast_9171_15 | |
case_body: ; preds = %match_case | |
%57 = load %"2.std::sys::thread::Thread"*, %"2.std::sys::thread::Thread"** %val | |
%58 = bitcast %"2.std::sys::thread::Thread"* %57 to i8* | |
%59 = bitcast %"2.std::sys::thread::Thread"* %48 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %59, i8* %58, i64 16, i32 8, i1 false) | |
%60 = bitcast %"2.std::sys::thread::Thread"* %57 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %60, i8 29, i64 16, i32 8, i1 false) | |
call void @_ZN24std..sys..thread..Thread9drop.433417hcbc9fc29160ac810E(%"2.std::sys::thread::Thread"* %57) | |
%61 = bitcast %"2.std::sys::thread::Thread"* %57 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %61, i8 29, i64 16, i32 8, i1 false) | |
br label %join | |
case_body20: ; preds = %match_case21 | |
%62 = load %"2.std::io::error::Error"*, %"2.std::io::error::Error"** %err | |
%63 = bitcast %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %ret_slot to { i64, %"2.std::io::error::Error" }* | |
%64 = getelementptr inbounds { i64, %"2.std::io::error::Error" }, { i64, %"2.std::io::error::Error" }* %63, i32 0, i32 1 | |
%65 = bitcast %"2.std::io::error::Error"* %62 to i8* | |
%66 = bitcast %"2.std::io::error::Error"* %arg22 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %66, i8* %65, i64 16, i32 8, i1 false) | |
%67 = bitcast %"2.std::io::error::Error"* %62 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %67, i8 29, i64 16, i32 8, i1 false) | |
invoke void @"_ZN7convert15T.From$LT$T$GT$4from20h2997837675504574822E"(%"2.std::io::error::Error"* noalias nocapture sret dereferenceable(16) %64, %"2.std::io::error::Error"* noalias nocapture dereferenceable(16) %arg22) | |
to label %normal-return23 unwind label %unwind_custom_ | |
match_else: ; preds = %normal-return17 | |
unreachable | |
match_case: ; preds = %normal-return17 | |
%68 = bitcast %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %4 to { i64, %"2.std::sys::thread::Thread" }* | |
%69 = getelementptr inbounds { i64, %"2.std::sys::thread::Thread" }, { i64, %"2.std::sys::thread::Thread" }* %68, i32 0, i32 1 | |
store %"2.std::sys::thread::Thread"* %69, %"2.std::sys::thread::Thread"** %val | |
br label %case_body | |
match_case21: ; preds = %normal-return17 | |
%70 = bitcast %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %4 to { i64, %"2.std::io::error::Error" }* | |
%71 = getelementptr inbounds { i64, %"2.std::io::error::Error" }, { i64, %"2.std::io::error::Error" }* %70, i32 0, i32 1 | |
store %"2.std::io::error::Error"* %71, %"2.std::io::error::Error"** %err | |
br label %case_body20 | |
normal-return23: ; preds = %case_body20 | |
%72 = getelementptr inbounds %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>", %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %ret_slot, i32 0, i32 0 | |
store i64 1, i64* %72 | |
store %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %ret_slot, %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"** %llretslotptr | |
br label %clean_custom_28 | |
unwind_custom_: ; preds = %case_body20 | |
%73 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %73, { i8*, i32 }* %3 | |
br label %clean_custom_25 | |
clean_ast_9171_24: ; preds = %clean_custom_25 | |
call void @"_ZN81core..result..Result$LT$std..sys..thread..Thread$C$$u20$std..io..error..Error$GT$9drop.501617hdffd08fc3bf06d8fE"(%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %4) | |
br label %clean_ast_9171_19 | |
clean_custom_25: ; preds = %unwind_custom_ | |
call void @_ZN21std..io..error..Error9drop.472817hb777fe86563aa27aE(%"2.std::io::error::Error"* %62) | |
%74 = bitcast %"2.std::io::error::Error"* %62 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %74, i8 29, i64 16, i32 8, i1 false) | |
br label %clean_ast_9171_24 | |
clean_custom_26: ; preds = %clean_custom_29, %clean_ast_9171_27 | |
call void @_ZN20std..thread..Builder9drop.477017h4f26505035c95845E(%"2.std::thread::Builder"* %self) | |
br label %return | |
clean_ast_9171_27: ; preds = %clean_custom_28 | |
call void @"_ZN81core..result..Result$LT$std..sys..thread..Thread$C$$u20$std..io..error..Error$GT$9drop.501617hdffd08fc3bf06d8fE"(%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %4) | |
call void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.499017h03213aa6cad857e4E"(%closure.0* %main) | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet) | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet) | |
call void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"* %their_thread) | |
call void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"* %my_thread) | |
call void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.444017he0121e2e024daed1E"(%"1.core::option::Option<collections::string::String>"* %name) | |
br label %clean_custom_26 | |
clean_custom_28: ; preds = %normal-return23 | |
call void @_ZN21std..io..error..Error9drop.472817hb777fe86563aa27aE(%"2.std::io::error::Error"* %62) | |
%75 = bitcast %"2.std::io::error::Error"* %62 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %75, i8 29, i64 16, i32 8, i1 false) | |
br label %clean_ast_9171_27 | |
join: ; preds = %case_body | |
%76 = getelementptr inbounds %"1.core::option::Option<std::sys::thread::Thread>", %"1.core::option::Option<std::sys::thread::Thread>"* %46, i32 0, i32 0 | |
store i64 1, i64* %76 | |
%77 = getelementptr inbounds %"2.std::thread::JoinInner<i32>", %"2.std::thread::JoinInner<i32>"* %45, i32 0, i32 1 | |
%78 = bitcast %"2.std::thread::Thread"* %my_thread to i8* | |
%79 = bitcast %"2.std::thread::Thread"* %77 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %79, i8* %78, i64 8, i32 8, i1 false) | |
%80 = bitcast %"2.std::thread::Thread"* %my_thread to i8* | |
call void @llvm.memset.p0i8.i64(i8* %80, i8 29, i64 8, i32 8, i1 false) | |
%81 = getelementptr inbounds %"2.std::thread::JoinInner<i32>", %"2.std::thread::JoinInner<i32>"* %45, i32 0, i32 2 | |
%82 = getelementptr inbounds %"2.std::thread::Packet<i32>", %"2.std::thread::Packet<i32>"* %81, i32 0, i32 0 | |
%83 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet to i8* | |
%84 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %82 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %84, i8* %83, i64 8, i32 8, i1 false) | |
%85 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet to i8* | |
call void @llvm.memset.p0i8.i64(i8* %85, i8 29, i64 8, i32 8, i1 false) | |
%86 = getelementptr inbounds %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>", %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %iret_slot, i32 0, i32 0 | |
store i64 0, i64* %86 | |
call void @"_ZN81core..result..Result$LT$std..sys..thread..Thread$C$$u20$std..io..error..Error$GT$9drop.501617hdffd08fc3bf06d8fE"(%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %4) | |
call void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.499017h03213aa6cad857e4E"(%closure.0* %main) | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet) | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet) | |
call void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"* %their_thread) | |
call void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"* %my_thread) | |
call void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.444017he0121e2e024daed1E"(%"1.core::option::Option<collections::string::String>"* %name) | |
store %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %iret_slot, %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"** %llretslotptr | |
br label %clean_custom_29 | |
return: ; preds = %clean_custom_26 | |
%87 = load %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"*, %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"** %llretslotptr | |
%88 = bitcast %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %87 to i8* | |
%89 = bitcast %"1.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %0 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %89, i8* %88, i64 48, i32 8, i1 false) | |
ret void | |
clean_custom_29: ; preds = %join | |
br label %clean_custom_26 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @"_ZN6option15Option$LT$T$GT$9unwrap_or21h14126731333190218422E"(%"1.core::option::Option<usize>"* noalias nocapture dereferenceable(16) %self, i64) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca i64 | |
%def = alloca i64 | |
%__llmatch = alloca i64* | |
%x = alloca i64 | |
store i64 %0, i64* %def, align 8 | |
%1 = getelementptr inbounds %"1.core::option::Option<usize>", %"1.core::option::Option<usize>"* %self, i32 0, i32 0 | |
%2 = load i64, i64* %1, !range !2 | |
switch i64 %2, label %match_else [ | |
i64 1, label %match_case | |
i64 0, label %match_case2 | |
] | |
case_body: ; preds = %match_case | |
%3 = load i64*, i64** %__llmatch | |
%4 = load i64, i64* %3, align 8 | |
store i64 %4, i64* %x, align 8 | |
%5 = load i64, i64* %x, align 8 | |
store i64 %5, i64* %sret_slot, align 8 | |
br label %join | |
case_body1: ; preds = %match_case2 | |
%6 = load i64, i64* %def, align 8 | |
store i64 %6, i64* %sret_slot, align 8 | |
br label %join | |
match_else: ; preds = %entry-block | |
unreachable | |
match_case: ; preds = %entry-block | |
%7 = bitcast %"1.core::option::Option<usize>"* %self to { i64, i64 }* | |
%8 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %7, i32 0, i32 1 | |
store i64* %8, i64** %__llmatch | |
br label %case_body | |
match_case2: ; preds = %entry-block | |
br label %case_body1 | |
join: ; preds = %case_body1, %case_body | |
%9 = load i64, i64* %sret_slot, align 8 | |
ret i64 %9 | |
} | |
declare i64 @_ZN10sys_common4util9min_stack20h86ca992492bbcc24YltE() unnamed_addr | |
define internal void @_ZN20std..thread..Builder9drop.477017h4f26505035c95845E(%"2.std::thread::Builder"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"2.std::thread::Builder", %"2.std::thread::Builder"* %0, i32 0, i32 0 | |
call void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.444017he0121e2e024daed1E"(%"1.core::option::Option<collections::string::String>"* %1) | |
%2 = getelementptr inbounds %"2.std::thread::Builder", %"2.std::thread::Builder"* %0, i32 0, i32 1 | |
ret void | |
} | |
declare i64 @_ZN6thread6Thread3new20hf1a305e08ff0b35aLGbE(%"1.core::option::Option<collections::string::String>"* noalias nocapture dereferenceable(24)) unnamed_addr | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN6thread27Thread...core..clone..Clone5clone20h7c83e9af70ae2e26oGbE(%"2.std::thread::Thread"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca %"2.std::thread::Thread" | |
%self = alloca %"2.std::thread::Thread"* | |
%__self_0_0 = alloca %"5.alloc::arc::Arc<std::thread::Inner>"* | |
store %"2.std::thread::Thread"* %0, %"2.std::thread::Thread"** %self, align 8 | |
%1 = load %"2.std::thread::Thread"*, %"2.std::thread::Thread"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"2.std::thread::Thread", %"2.std::thread::Thread"* %1, i32 0, i32 0 | |
store %"5.alloc::arc::Arc<std::thread::Inner>"* %2, %"5.alloc::arc::Arc<std::thread::Inner>"** %__self_0_0 | |
br label %case_body | |
case_body: ; preds = %entry-block | |
%3 = getelementptr inbounds %"2.std::thread::Thread", %"2.std::thread::Thread"* %sret_slot, i32 0, i32 0 | |
%4 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %__self_0_0, align 8, !nonnull !1 | |
%5 = call i64 @"_ZN3arc18Arc$LT$T$GT$.Clone5clone20h3462670155656199377E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8) %4) | |
%6 = bitcast %"5.alloc::arc::Arc<std::thread::Inner>"* %3 to i64* | |
store i64 %5, i64* %6, align 8 | |
br label %join | |
join: ; preds = %case_body | |
%7 = bitcast %"2.std::thread::Thread"* %sret_slot to i64* | |
%8 = load i64, i64* %7, align 8 | |
ret i64 %8 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @"_ZN3arc18Arc$LT$T$GT$.Clone5clone20h3462670155656199377E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca %"5.alloc::arc::Arc<std::thread::Inner>" | |
%self = alloca %"5.alloc::arc::Arc<std::thread::Inner>"* | |
%old_size = alloca i64 | |
%1 = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"* | |
%auto_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"* | |
%2 = bitcast %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref to i8* | |
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 8, i32 8, i1 false) | |
store %"5.alloc::arc::Arc<std::thread::Inner>"* %0, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8 | |
%3 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1 | |
%4 = call dereferenceable(72) %"5.alloc::arc::ArcInner<std::thread::Inner>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h18288450237844670917E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8) %3) | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %4, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %1, align 8 | |
%5 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %1, align 8, !nonnull !1 | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %5, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8 | |
%6 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8, !nonnull !1 | |
%7 = getelementptr inbounds %"5.alloc::arc::ArcInner<std::thread::Inner>", %"5.alloc::arc::ArcInner<std::thread::Inner>"* %6, i32 0, i32 0 | |
%8 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_add20he94ee3077db7985ax1KE(%"1.core::sync::atomic::AtomicUsize"* dereferenceable(8) %7, i64 1, i8 0) | |
store i64 %8, i64* %old_size, align 8 | |
%9 = load i64, i64* %old_size, align 8 | |
%10 = icmp ugt i64 %9, 9223372036854775807 | |
br i1 %10, label %then-block-101031-, label %next-block | |
then-block-101031-: ; preds = %entry-block | |
call void @llvm.trap() | |
unreachable | |
next-block: ; preds = %entry-block | |
%11 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %sret_slot, i32 0, i32 0 | |
%12 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1 | |
%13 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %12, i32 0, i32 0 | |
%14 = bitcast %"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* %13 to i8* | |
%15 = bitcast %"1.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* %11 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %15, i8* %14, i64 8, i32 8, i1 false) | |
%16 = bitcast %"5.alloc::arc::Arc<std::thread::Inner>"* %sret_slot to i64* | |
%17 = load i64, i64* %16, align 8 | |
ret i64 %17 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN4sync6atomic11AtomicUsize9fetch_add20he94ee3077db7985ax1KE(%"1.core::sync::atomic::AtomicUsize"* dereferenceable(8), i64, i8) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"1.core::sync::atomic::AtomicUsize"* | |
%val = alloca i64 | |
%order = alloca i8 | |
%3 = alloca i64* | |
store %"1.core::sync::atomic::AtomicUsize"* %0, %"1.core::sync::atomic::AtomicUsize"** %self, align 8 | |
store i64 %1, i64* %val, align 8 | |
store i8 %2, i8* %order, align 1 | |
%4 = load %"1.core::sync::atomic::AtomicUsize"*, %"1.core::sync::atomic::AtomicUsize"** %self, align 8, !nonnull !1 | |
%5 = getelementptr inbounds %"1.core::sync::atomic::AtomicUsize", %"1.core::sync::atomic::AtomicUsize"* %4, i32 0, i32 0 | |
%6 = call i64* @"_ZN4cell19UnsafeCell$LT$T$GT$3get21h10481443535072462739E"(%"1.core::cell::UnsafeCell<usize>"* dereferenceable(8) %5) | |
store i64* %6, i64** %3, align 8 | |
%7 = load i64*, i64** %3, align 8 | |
%8 = load i64, i64* %val, align 8 | |
%9 = load i8, i8* %order, align 1 | |
%10 = call i64 @_ZN4sync6atomic10atomic_add21h10728501060054401269E(i64* %7, i64 %8, i8 %9) | |
ret i64 %10 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN4sync6atomic10atomic_add21h10728501060054401269E(i64*, i64, i8) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca i64 | |
%dst = alloca i64* | |
%val = alloca i64 | |
%order = alloca i8 | |
store i64* %0, i64** %dst, align 8 | |
store i64 %1, i64* %val, align 8 | |
store i8 %2, i8* %order, align 1 | |
%3 = load i8, i8* %order, !range !3 | |
switch i8 %3, label %match_else [ | |
i8 2, label %match_case | |
i8 1, label %match_case5 | |
i8 3, label %match_case6 | |
i8 0, label %match_case7 | |
i8 4, label %match_case8 | |
] | |
case_body: ; preds = %match_case | |
%4 = load i64*, i64** %dst, align 8 | |
%5 = load i64, i64* %val, align 8 | |
%6 = atomicrmw add i64* %4, i64 %5 acquire | |
store i64 %6, i64* %sret_slot, align 8 | |
br label %join | |
case_body1: ; preds = %match_case5 | |
%7 = load i64*, i64** %dst, align 8 | |
%8 = load i64, i64* %val, align 8 | |
%9 = atomicrmw add i64* %7, i64 %8 release | |
store i64 %9, i64* %sret_slot, align 8 | |
br label %join | |
case_body2: ; preds = %match_case6 | |
%10 = load i64*, i64** %dst, align 8 | |
%11 = load i64, i64* %val, align 8 | |
%12 = atomicrmw add i64* %10, i64 %11 acq_rel | |
store i64 %12, i64* %sret_slot, align 8 | |
br label %join | |
case_body3: ; preds = %match_case7 | |
%13 = load i64*, i64** %dst, align 8 | |
%14 = load i64, i64* %val, align 8 | |
%15 = atomicrmw add i64* %13, i64 %14 monotonic | |
store i64 %15, i64* %sret_slot, align 8 | |
br label %join | |
case_body4: ; preds = %match_case8 | |
%16 = load i64*, i64** %dst, align 8 | |
%17 = load i64, i64* %val, align 8 | |
%18 = atomicrmw add i64* %16, i64 %17 seq_cst | |
store i64 %18, i64* %sret_slot, align 8 | |
br label %join | |
match_else: ; preds = %entry-block | |
unreachable | |
match_case: ; preds = %entry-block | |
br label %case_body | |
match_case5: ; preds = %entry-block | |
br label %case_body1 | |
match_case6: ; preds = %entry-block | |
br label %case_body2 | |
match_case7: ; preds = %entry-block | |
br label %case_body3 | |
match_case8: ; preds = %entry-block | |
br label %case_body4 | |
join: ; preds = %case_body4, %case_body3, %case_body2, %case_body1, %case_body | |
%19 = load i64, i64* %sret_slot, align 8 | |
ret i64 %19 | |
} | |
; Function Attrs: noreturn nounwind | |
declare void @llvm.trap() #8 | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @"_ZN3arc12Arc$LT$T$GT$3new21h10152365789534857938E"(%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* noalias nocapture dereferenceable(32) %data) unnamed_addr #1 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%sret_slot = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" | |
%x = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%0 = alloca { i8*, i32 } | |
%1 = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%2 = invoke i8* @_ZN4heap15exchange_malloc20h295535e6fb0e6dd3MfaE(i64 48, i64 8) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %entry-block | |
%3 = bitcast i8* %2 to %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%4 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %3, i32 0, i32 0 | |
%5 = bitcast %"1.core::sync::atomic::AtomicUsize"* %4 to { { i64 } }* | |
%6 = bitcast { { i64 } }* %5 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %6, i8* bitcast ({ { i64 } }* @const4823 to i8*), i64 8, i32 8, i1 false) | |
%7 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %3, i32 0, i32 1 | |
%8 = bitcast %"1.core::sync::atomic::AtomicUsize"* %7 to { { i64 } }* | |
%9 = bitcast { { i64 } }* %8 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* bitcast ({ { i64 } }* @const4823 to i8*), i64 8, i32 8, i1 false) | |
%10 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %3, i32 0, i32 2 | |
%11 = bitcast %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %data to i8* | |
%12 = bitcast %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %10 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %12, i8* %11, i64 32, i32 8, i1 false) | |
%13 = bitcast %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %data to i8* | |
call void @llvm.memset.p0i8.i64(i8* %13, i8 29, i64 32, i32 8, i1 false) | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %3, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %x, align 8 | |
%14 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %sret_slot, i32 0, i32 0 | |
%15 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %x, align 8, !nonnull !1 | |
%16 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %x to i8* | |
call void @llvm.memset.p0i8.i64(i8* %16, i8 29, i64 8, i32 8, i1 false) | |
%17 = invoke %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN5boxed12Box$LT$T$GT$8into_raw21h17693910815528260932E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias dereferenceable(48) %15) | |
to label %normal-return1 unwind label %unwind_ast_101196_ | |
unwind_custom_: ; preds = %entry-block | |
%18 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %18, { i8*, i32 }* %0 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%19 = load { i8*, i32 }, { i8*, i32 }* %0 | |
resume { i8*, i32 } %19 | |
clean_custom_: ; preds = %clean_custom_2, %unwind_custom_ | |
call void @"_ZN167core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$9drop.471017h843efe4baa1ac214E"(%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %data) | |
br label %resume | |
normal-return1: ; preds = %normal-return | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %17, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8 | |
%20 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8 | |
%21 = invoke i64 @"_ZN3ptr15Shared$LT$T$GT$3new21h14503190406110995924E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %20) | |
to label %normal-return3 unwind label %unwind_ast_101196_ | |
unwind_ast_101196_: ; preds = %normal-return1, %normal-return | |
%22 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %22, { i8*, i32 }* %0 | |
br label %clean_ast_101196_ | |
clean_custom_2: ; preds = %clean_ast_101196_ | |
br label %clean_custom_ | |
clean_ast_101196_: ; preds = %unwind_ast_101196_ | |
call void @"_ZN206Box$LT$alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$GT$9drop.484317h3b3a560b61e1a57fE"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %x) | |
br label %clean_custom_2 | |
normal-return3: ; preds = %normal-return1 | |
%23 = bitcast %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %14 to i64* | |
store i64 %21, i64* %23, align 8 | |
call void @"_ZN206Box$LT$alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$GT$9drop.484317h3b3a560b61e1a57fE"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %x) | |
call void @"_ZN167core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$9drop.471017h843efe4baa1ac214E"(%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %data) | |
%24 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %sret_slot to i64* | |
%25 = load i64, i64* %24, align 8 | |
ret i64 %25 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i8* @_ZN4heap15exchange_malloc20h295535e6fb0e6dd3MfaE(i64, i64) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca i8* | |
%size = alloca i64 | |
%align = alloca i64 | |
%ptr = alloca i8* | |
%2 = alloca i8 | |
store i64 %0, i64* %size, align 8 | |
store i64 %1, i64* %align, align 8 | |
%3 = load i64, i64* %size, align 8 | |
%4 = icmp eq i64 %3, 0 | |
br i1 %4, label %then-block-101235-, label %else-block | |
then-block-101235-: ; preds = %entry-block | |
store i8* inttoptr (i64 1 to i8*), i8** %sret_slot, align 8 | |
br label %join | |
else-block: ; preds = %entry-block | |
%5 = load i64, i64* %size, align 8 | |
%6 = load i64, i64* %align, align 8 | |
%7 = call i8* @_ZN4heap8allocate20hcda44ecaa4f7dda9SdaE(i64 %5, i64 %6) | |
store i8* %7, i8** %ptr, align 8 | |
%8 = load i8*, i8** %ptr, align 8 | |
%9 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null21h14484011124458446728E"(i8* %8) | |
%10 = zext i1 %9 to i8 | |
store i8 %10, i8* %2, align 1 | |
%11 = load i8, i8* %2, align 1, !range !0 | |
%12 = trunc i8 %11 to i1 | |
br i1 %12, label %then-block-101253-, label %next-block | |
then-block-101253-: ; preds = %else-block | |
call void @_ZN3oom3oom20h30d8eb252e73102ePzbE() | |
unreachable | |
next-block: ; preds = %else-block | |
%13 = load i8*, i8** %ptr, align 8 | |
store i8* %13, i8** %sret_slot, align 8 | |
br label %join | |
join: ; preds = %next-block, %then-block-101235- | |
%14 = load i8*, i8** %sret_slot, align 8 | |
ret i8* %14 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i8* @_ZN4heap8allocate20hcda44ecaa4f7dda9SdaE(i64, i64) unnamed_addr #1 { | |
entry-block: | |
%size.i = alloca i64 | |
%align.i = alloca i64 | |
%size = alloca i64 | |
%align = alloca i64 | |
%__arg = alloca i64 | |
%__arg1 = alloca i64 | |
store i64 %0, i64* %size, align 8 | |
store i64 %1, i64* %align, align 8 | |
%2 = load i64, i64* %size, align 8 | |
%3 = load i64, i64* %align, align 8 | |
store i64 %2, i64* %size.i, align 8 | |
store i64 %3, i64* %align.i, align 8 | |
%4 = load i64, i64* %size, align 8 | |
%5 = load i64, i64* %align, align 8 | |
store i64 %4, i64* %__arg, align 8 | |
%6 = load i64, i64* %__arg | |
store i64 %5, i64* %__arg1, align 8 | |
%7 = load i64, i64* %__arg1 | |
%8 = call i8* @__rust_allocate(i64 %6, i64 %7) | |
ret i8* %8 | |
} | |
; Function Attrs: nounwind | |
declare noalias i8* @__rust_allocate(i64, i64) unnamed_addr #3 | |
; Function Attrs: cold noinline noreturn | |
declare void @_ZN3oom3oom20h30d8eb252e73102ePzbE() unnamed_addr #4 | |
; Function Attrs: uwtable | |
define internal i64 @"_ZN3ptr15Shared$LT$T$GT$3new21h14503190406110995924E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*) unnamed_addr #0 { | |
entry-block: | |
%sret_slot.i = alloca %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" | |
%inner.i = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%sret_slot = alloca %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" | |
%ptr = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8 | |
%1 = getelementptr inbounds %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %sret_slot, i32 0, i32 0 | |
%2 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8 | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %2, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %inner.i, align 8 | |
%3 = getelementptr inbounds %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %sret_slot.i, i32 0, i32 0 | |
%4 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %inner.i, align 8 | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %4, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %3, align 8 | |
%5 = bitcast %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %sret_slot.i to i64* | |
%6 = load i64, i64* %5, align 8 | |
%7 = bitcast %"1.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %1 to i64* | |
store i64 %6, i64* %7, align 8 | |
%8 = getelementptr inbounds %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %sret_slot, i32 0, i32 1 | |
%9 = bitcast %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %sret_slot to i64* | |
%10 = load i64, i64* %9, align 8 | |
ret i64 %10 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN5boxed12Box$LT$T$GT$8into_raw21h17693910815528260932E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias dereferenceable(48)) unnamed_addr #1 { | |
entry-block: | |
%b = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %b, align 8 | |
%1 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %b, align 8, !nonnull !1 | |
%2 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %b to i8* | |
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 8, i32 8, i1 false) | |
call void @"_ZN206Box$LT$alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$GT$9drop.484317h3b3a560b61e1a57fE"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %b) | |
ret %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1 | |
} | |
define internal void @"_ZN206Box$LT$alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$GT$9drop.484317h3b3a560b61e1a57fE"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**) unnamed_addr { | |
entry-block: | |
%1 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %0 | |
%2 = ptrtoint %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1 to i64 | |
%3 = icmp ne i64 %2, 2097865012304223517 | |
br i1 %3, label %cond, label %next | |
next: ; preds = %cond, %entry-block | |
ret void | |
cond: ; preds = %entry-block | |
call void @"_ZN195alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.484617h5bf0eb516d1abfecE"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1) | |
%4 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1 to i8* | |
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %4, i64 48, i64 8) | |
br label %next | |
} | |
define internal void @"_ZN195alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.484617h5bf0eb516d1abfecE"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, i32 0, i32 0 | |
%2 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, i32 0, i32 1 | |
%3 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, i32 0, i32 2 | |
call void @"_ZN167core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$9drop.471017h843efe4baa1ac214E"(%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %3) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @"_ZN3arc18Arc$LT$T$GT$.Clone5clone20h6788750237553431627E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" | |
%self = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%old_size = alloca i64 | |
%1 = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%auto_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%2 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref to i8* | |
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 8, i32 8, i1 false) | |
store %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8 | |
%3 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1 | |
%4 = call dereferenceable(48) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h14200732739658287836E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %3) | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %4, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8 | |
%5 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8, !nonnull !1 | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %5, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8 | |
%6 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8, !nonnull !1 | |
%7 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %6, i32 0, i32 0 | |
%8 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_add20he94ee3077db7985ax1KE(%"1.core::sync::atomic::AtomicUsize"* dereferenceable(8) %7, i64 1, i8 0) | |
store i64 %8, i64* %old_size, align 8 | |
%9 = load i64, i64* %old_size, align 8 | |
%10 = icmp ugt i64 %9, 9223372036854775807 | |
br i1 %10, label %then-block-101031-, label %next-block | |
then-block-101031-: ; preds = %entry-block | |
call void @llvm.trap() | |
unreachable | |
next-block: ; preds = %entry-block | |
%11 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %sret_slot, i32 0, i32 0 | |
%12 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1 | |
%13 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %12, i32 0, i32 0 | |
%14 = bitcast %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %13 to i8* | |
%15 = bitcast %"1.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %11 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %15, i8* %14, i64 8, i32 8, i1 false) | |
%16 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %sret_slot to i64* | |
%17 = load i64, i64* %16, align 8 | |
ret i64 %17 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$12closure.4849E"(%closure.0* noalias nocapture dereferenceable(16)) unnamed_addr #1 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%1 = alloca %"1.core::option::Option<&'static str>" | |
%2 = alloca { i8*, i32 } | |
%__llmatch = alloca %str_slice* | |
%name = alloca %str_slice | |
%temp = alloca {} | |
%3 = alloca %"1.core::option::Option<usize>" | |
%output = alloca %"1.core::option::Option<i32>" | |
%try_result = alloca %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>" | |
%ptr = alloca %"1.core::option::Option<i32>"* | |
%4 = alloca %closure.1 | |
%5 = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>" | |
%arg = alloca %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>" | |
%6 = alloca %closure.2 | |
%7 = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* | |
%overloaded_deref = alloca %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* | |
%8 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 0 | |
%9 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 1 | |
%10 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 2 | |
invoke void @_ZN6thread6Thread4name20he72f73b0a8106544wHbE(%"1.core::option::Option<&'static str>"* noalias nocapture sret dereferenceable(16) %1, %"2.std::thread::Thread"* noalias readonly dereferenceable(8) %8) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %entry-block | |
%11 = getelementptr inbounds %"1.core::option::Option<&'static str>", %"1.core::option::Option<&'static str>"* %1, i32 0, i32 0, i32 0 | |
%12 = load i8*, i8** %11 | |
%13 = icmp ne i8* %12, null | |
switch i1 %13, label %match_else [ | |
i1 true, label %match_case | |
] | |
unwind_custom_: ; preds = %normal-return4, %normal-return3, %join, %case_body, %entry-block | |
%14 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %14, { i8*, i32 }* %2 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%15 = load { i8*, i32 }, { i8*, i32 }* %2 | |
resume { i8*, i32 } %15 | |
clean_custom_: ; preds = %clean_custom_7, %unwind_custom_ | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %10) | |
call void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"* %8) | |
br label %resume | |
case_body: ; preds = %match_case | |
%16 = load %str_slice*, %str_slice** %__llmatch | |
%17 = bitcast %str_slice* %16 to i8* | |
%18 = bitcast %str_slice* %name to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %18, i8* %17, i64 16, i32 8, i1 false) | |
%19 = getelementptr inbounds %str_slice, %str_slice* %name, i32 0, i32 0 | |
%20 = load i8*, i8** %19 | |
%21 = getelementptr inbounds %str_slice, %str_slice* %name, i32 0, i32 1 | |
%22 = load i64, i64* %21 | |
invoke void @_ZN3sys6thread6Thread8set_name20hb7a3fcaf10f6023c72xE(i8* noalias nonnull readonly %20, i64 %22) | |
to label %normal-return2 unwind label %unwind_custom_ | |
case_body1: ; preds = %match_else | |
br label %join | |
match_else: ; preds = %normal-return | |
br label %case_body1 | |
match_case: ; preds = %normal-return | |
%23 = getelementptr inbounds %"1.core::option::Option<&'static str>", %"1.core::option::Option<&'static str>"* %1, i32 0, i32 0 | |
store %str_slice* %23, %str_slice** %__llmatch | |
br label %case_body | |
normal-return2: ; preds = %case_body | |
br label %join | |
join: ; preds = %case_body1, %normal-return2 | |
invoke void @_ZN3sys6thread5guard7current20h684ef0c446b2080dxgyE(%"1.core::option::Option<usize>"* noalias nocapture sret dereferenceable(16) %3) | |
to label %normal-return3 unwind label %unwind_custom_ | |
normal-return3: ; preds = %join | |
%24 = bitcast %"2.std::thread::Thread"* %8 to i64* | |
%25 = load i64, i64* %24, align 8 | |
%26 = bitcast %"2.std::thread::Thread"* %8 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %26, i8 29, i64 8, i32 8, i1 false) | |
invoke void @_ZN10sys_common11thread_info3set20hdddfb61845e1e53ea7sE(%"1.core::option::Option<usize>"* noalias nocapture dereferenceable(16) %3, i64 %25) | |
to label %normal-return4 unwind label %unwind_custom_ | |
normal-return4: ; preds = %normal-return3 | |
%27 = bitcast %"1.core::option::Option<i32>"* %output to { i32, [4 x i8] }* | |
%28 = bitcast { i32, [4 x i8] }* %27 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %28, i8* bitcast ({ i32, [4 x i8] }* @const4855 to i8*), i64 8, i32 4, i1 false) | |
store %"1.core::option::Option<i32>"* %output, %"1.core::option::Option<i32>"** %ptr, align 8 | |
%29 = getelementptr inbounds %closure.1, %closure.1* %4, i32 0, i32 0 | |
%30 = getelementptr inbounds %closure.1, %closure.1* %4, i32 0, i32 1 | |
%31 = load %"1.core::option::Option<i32>"*, %"1.core::option::Option<i32>"** %ptr, align 8, !nonnull !1 | |
store %"1.core::option::Option<i32>"* %31, %"1.core::option::Option<i32>"** %30, align 8 | |
%32 = bitcast %closure.1* %4 to i64* | |
%33 = load i64, i64* %32, align 8 | |
invoke void @_ZN10sys_common6unwind3try21h15109373244732822971E(%"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(16) %try_result, i64 %33) | |
to label %normal-return5 unwind label %unwind_custom_ | |
normal-return5: ; preds = %normal-return4 | |
%34 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %5 to { i64, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }* | |
%35 = getelementptr inbounds { i64, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }, { i64, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }* %34, i32 0, i32 1 | |
%36 = bitcast %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %try_result to i8* | |
%37 = bitcast %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %arg to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %37, i8* %36, i64 16, i32 8, i1 false) | |
%38 = bitcast %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %try_result to i8* | |
call void @llvm.memset.p0i8.i64(i8* %38, i8 29, i64 16, i32 8, i1 false) | |
%39 = getelementptr inbounds %closure.2, %closure.2* %6, i32 0, i32 0 | |
%40 = bitcast %"1.core::option::Option<i32>"* %output to i8* | |
%41 = bitcast %"1.core::option::Option<i32>"* %39 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %41, i8* %40, i64 8, i32 4, i1 false) | |
%42 = bitcast %closure.2* %6 to i64* | |
%43 = load i64, i64* %42, align 4 | |
invoke void @"_ZN6result24Result$LT$T$C$$u20$E$GT$3map20h4606975337958367552E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24) %35, %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture dereferenceable(16) %arg, i64 %43) | |
to label %normal-return6 unwind label %unwind_ast_9233_ | |
normal-return6: ; preds = %normal-return5 | |
%44 = getelementptr inbounds %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>", %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %5, i32 0, i32 0 | |
store i64 1, i64* %44 | |
%45 = invoke dereferenceable(32) %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* @"_ZN3arc18Arc$LT$T$GT$.Deref5deref20h9911102696180501923E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %10) | |
to label %normal-return8 unwind label %unwind_ast_9233_ | |
unwind_ast_9233_: ; preds = %normal-return8, %normal-return6, %normal-return5 | |
%46 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %46, { i8*, i32 }* %2 | |
br label %clean_ast_9233_ | |
clean_custom_7: ; preds = %clean_ast_9233_ | |
br label %clean_custom_ | |
clean_ast_9233_: ; preds = %unwind_ast_9233_ | |
call void @"_ZN114core..result..Result$LT$$LP$$RP$$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.498417h206c7a8d816689ebE"(%"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %try_result) | |
br label %clean_custom_7 | |
normal-return8: ; preds = %normal-return6 | |
store %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %45, %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %overloaded_deref, align 8 | |
%47 = load %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*, %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %overloaded_deref, align 8, !nonnull !1 | |
%48 = invoke %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* @"_ZN4cell19UnsafeCell$LT$T$GT$3get20h2493915857101001862E"(%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* dereferenceable(32) %47) | |
to label %normal-return9 unwind label %unwind_ast_9233_ | |
normal-return9: ; preds = %normal-return8 | |
store %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %48, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %7, align 8 | |
%49 = load %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %7, align 8 | |
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.471317h0c1536054c4667a3E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %49) | |
%50 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %5 to i8* | |
%51 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %49 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %51, i8* %50, i64 32, i32 8, i1 false) | |
call void @"_ZN114core..result..Result$LT$$LP$$RP$$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.498417h206c7a8d816689ebE"(%"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %try_result) | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %10) | |
call void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"* %8) | |
ret void | |
} | |
declare void @_ZN6thread6Thread4name20he72f73b0a8106544wHbE(%"1.core::option::Option<&'static str>"* noalias nocapture sret dereferenceable(16), %"2.std::thread::Thread"* noalias readonly dereferenceable(8)) unnamed_addr | |
declare void @_ZN3sys6thread6Thread8set_name20hb7a3fcaf10f6023c72xE(i8* noalias nonnull readonly, i64) unnamed_addr | |
declare void @_ZN10sys_common11thread_info3set20hdddfb61845e1e53ea7sE(%"1.core::option::Option<usize>"* noalias nocapture dereferenceable(16), i64) unnamed_addr | |
declare void @_ZN3sys6thread5guard7current20h684ef0c446b2080dxgyE(%"1.core::option::Option<usize>"* noalias nocapture sret dereferenceable(16)) unnamed_addr | |
; Function Attrs: uwtable | |
define internal void @_ZN10sys_common6unwind3try21h15109373244732822971E(%"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(16), i64) unnamed_addr #0 { | |
entry-block: | |
%f = alloca %closure.1 | |
%f1 = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" | |
%2 = bitcast %closure.1* %f to i64* | |
store i64 %1, i64* %2, align 8 | |
%3 = getelementptr inbounds %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>", %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %f1, i32 0, i32 0 | |
%4 = bitcast %closure.1* %f to i8* | |
%5 = bitcast %closure.1* %3 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 8, i32 8, i1 false) | |
%6 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %f1 to i8* | |
call void @_ZN10sys_common6unwind9inner_try20hd8233908b4ec760dfitE(%"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(16) %0, void (i8*)* @_ZN10sys_common6unwind3try6try_fn20h4135255088861083478E, i8* %6) | |
br label %clean_ast_101518_ | |
return: ; preds = %clean_ast_101518_ | |
ret void | |
clean_ast_101518_: ; preds = %entry-block | |
br label %return | |
} | |
declare void @_ZN10sys_common6unwind9inner_try20hd8233908b4ec760dfitE(%"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(16), void (i8*)*, i8*) unnamed_addr | |
; Function Attrs: uwtable | |
define internal void @_ZN10sys_common6unwind3try6try_fn20h4135255088861083478E(i8*) unnamed_addr #0 { | |
entry-block: | |
%opt_closure = alloca i8* | |
%opt_closure1 = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* | |
%1 = alloca %closure.1 | |
%2 = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" | |
store i8* %0, i8** %opt_closure, align 8 | |
%3 = load i8*, i8** %opt_closure, align 8 | |
%4 = bitcast i8* %3 to %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* | |
store %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %4, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %opt_closure1, align 8 | |
%5 = load %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %opt_closure1, align 8 | |
%6 = call i64 @"_ZN6option15Option$LT$T$GT$4take20h3230018024677593231E"(%"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8) %5) | |
%7 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %2 to i64* | |
store i64 %6, i64* %7, align 8 | |
%8 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %2 to i64* | |
%9 = load i64, i64* %8, align 8 | |
%10 = call i64 @"_ZN6option15Option$LT$T$GT$6unwrap20h8734346205825086592E"(i64 %9) | |
%11 = bitcast %closure.1* %1 to i64* | |
store i64 %10, i64* %11, align 8 | |
%12 = bitcast %closure.1* %1 to i64* | |
%13 = load i64, i64* %12, align 8 | |
call void @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$12closure.4875E"(i64 %13) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$12closure.4875E"(i64) unnamed_addr #1 { | |
entry-block: | |
%closure_env = alloca %closure.1 | |
%1 = alloca %"1.core::option::Option<i32>" | |
%2 = bitcast %closure.1* %closure_env to i64* | |
store i64 %0, i64* %2, align 8 | |
%3 = getelementptr inbounds %closure.1, %closure.1* %closure_env, i32 0, i32 0 | |
%4 = getelementptr inbounds %closure.1, %closure.1* %closure_env, i32 0, i32 1 | |
%5 = bitcast %"1.core::option::Option<i32>"* %1 to { i32, i32 }* | |
%6 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %5, i32 0, i32 1 | |
%7 = call i32 @"_ZN4main28_$u7b$$u7b$closure$u7d$$u7d$12closure.4970E"(%closure undef) | |
store i32 %7, i32* %6, align 4 | |
%8 = getelementptr inbounds %"1.core::option::Option<i32>", %"1.core::option::Option<i32>"* %1, i32 0, i32 0 | |
store i32 1, i32* %8 | |
%9 = bitcast %"1.core::option::Option<i32>"* %1 to i64* | |
%10 = load i64, i64* %9, align 4 | |
%11 = load %"1.core::option::Option<i32>"*, %"1.core::option::Option<i32>"** %4, align 8, !nonnull !1 | |
%12 = bitcast %"1.core::option::Option<i32>"* %11 to i64* | |
store i64 %10, i64* %12, align 4 | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @"_ZN6option15Option$LT$T$GT$6unwrap20h8734346205825086592E"(i64) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca %closure.1 | |
%self = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" | |
%val = alloca %closure.1* | |
%1 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %self to i64* | |
store i64 %0, i64* %1, align 8 | |
%2 = getelementptr inbounds %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>", %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %self, i32 0, i32 0, i32 1 | |
%3 = load %"1.core::option::Option<i32>"*, %"1.core::option::Option<i32>"** %2 | |
%4 = icmp ne %"1.core::option::Option<i32>"* %3, null | |
switch i1 %4, label %match_else [ | |
i1 true, label %match_case | |
i1 false, label %match_case2 | |
] | |
case_body: ; preds = %match_case | |
%5 = load %closure.1*, %closure.1** %val | |
%6 = bitcast %closure.1* %5 to i8* | |
%7 = bitcast %closure.1* %sret_slot to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %7, i8* %6, i64 8, i32 8, i1 false) | |
br label %join | |
case_body1: ; preds = %match_case2 | |
call void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @"_ZN6option15Option$LT$T$GT$6unwrap14_MSG_FILE_LINE20h9e0bce6065acf43cknOE") | |
unreachable | |
match_else: ; preds = %entry-block | |
unreachable | |
match_case: ; preds = %entry-block | |
%8 = getelementptr inbounds %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>", %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %self, i32 0, i32 0 | |
store %closure.1* %8, %closure.1** %val | |
br label %case_body | |
match_case2: ; preds = %entry-block | |
br label %case_body1 | |
join: ; preds = %case_body | |
%9 = bitcast %closure.1* %sret_slot to i64* | |
%10 = load i64, i64* %9, align 8 | |
ret i64 %10 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @"_ZN6option15Option$LT$T$GT$4take20h3230018024677593231E"(%"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" | |
%self = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* | |
store %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %0, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %self, align 8 | |
%1 = load %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %self, align 8, !nonnull !1 | |
%2 = load i64, i64* bitcast ({ { {}, i8* } }* @const4968 to i64*), align 8 | |
%3 = call i64 @_ZN3mem7replace20h1633371207595314467E(%"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8) %1, i64 %2) | |
%4 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %sret_slot to i64* | |
store i64 %3, i64* %4, align 8 | |
%5 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %sret_slot to i64* | |
%6 = load i64, i64* %5, align 8 | |
ret i64 %6 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN3mem7replace20h1633371207595314467E(%"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8), i64) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" | |
%dest = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* | |
%src = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" | |
store %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %0, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %dest, align 8 | |
%2 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %src to i64* | |
store i64 %1, i64* %2, align 8 | |
%3 = load %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %dest, align 8, !nonnull !1 | |
call void @_ZN3mem4swap21h16999014920217185359E(%"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8) %3, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8) %src) | |
%4 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %src to i8* | |
%5 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %sret_slot to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 8, i32 8, i1 false) | |
%6 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %sret_slot to i64* | |
%7 = load i64, i64* %6, align 8 | |
ret i64 %7 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3mem4swap21h16999014920217185359E(%"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8), %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%x = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* | |
%y = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* | |
%t = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" | |
store %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %0, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %x, align 8 | |
store %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %1, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %y, align 8 | |
%2 = call i64 @_ZN3mem13uninitialized20h7857326007812661637E() | |
%3 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i64* | |
store i64 %2, i64* %3, align 8 | |
%4 = load %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %x, align 8, !nonnull !1 | |
%5 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i8* | |
%6 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %4 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %6, i64 8, i32 8, i1 false) | |
%7 = load %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %y, align 8, !nonnull !1 | |
%8 = load %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %x, align 8, !nonnull !1 | |
%9 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %8 to i8* | |
%10 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %7 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* %10, i64 8, i32 8, i1 false) | |
%11 = load %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %y, align 8, !nonnull !1 | |
%12 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %11 to i8* | |
%13 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %12, i8* %13, i64 8, i32 8, i1 false) | |
%14 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i64* | |
%15 = load i64, i64* %14, align 8 | |
call void @_ZN3mem6forget21h14460559035904804350E(i64 %15) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN3mem13uninitialized20h7857326007812661637E() unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" | |
%0 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %sret_slot to i64* | |
%1 = load i64, i64* %0, align 8 | |
ret i64 %1 | |
} | |
; Function Attrs: uwtable | |
define internal void @_ZN3mem6forget21h14460559035904804350E(i64) unnamed_addr #0 { | |
entry-block: | |
%t = alloca %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" | |
%1 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i64* | |
store i64 %0, i64* %1, align 8 | |
%2 = bitcast %"1.core::option::Option<[closure@DefId { krate: 2, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i64* | |
%3 = load i64, i64* %2, align 8 | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i32 @"_ZN4main28_$u7b$$u7b$closure$u7d$$u7d$12closure.4970E"(%closure) unnamed_addr #1 { | |
entry-block: | |
ret i32 2 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN6result24Result$LT$T$C$$u20$E$GT$3map20h4606975337958367552E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24), %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture dereferenceable(16) %self, i64) unnamed_addr #1 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%op = alloca %closure.2 | |
%__llmatch = alloca {}* | |
%t = alloca {} | |
%e = alloca { i8*, void (i8*)** }* | |
%2 = alloca { i8*, i32 } | |
%3 = bitcast %closure.2* %op to i64* | |
store i64 %1, i64* %3, align 4 | |
%4 = getelementptr inbounds %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>", %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %self, i32 0, i32 0, i32 0 | |
%5 = load i8*, i8** %4 | |
%6 = icmp ne i8* %5, null | |
switch i1 %6, label %match_else [ | |
i1 false, label %match_case | |
i1 true, label %match_case2 | |
] | |
case_body: ; preds = %match_case | |
%7 = load {}*, {}** %__llmatch | |
%8 = bitcast %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, i32 }* | |
%9 = getelementptr inbounds { i8, i32 }, { i8, i32 }* %8, i32 0, i32 1 | |
%10 = bitcast %closure.2* %op to i64* | |
%11 = load i64, i64* %10, align 4 | |
%12 = invoke i32 @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$12closure.4981E"(i64 %11, {} undef) | |
to label %normal-return unwind label %unwind_custom_ | |
case_body1: ; preds = %match_case2 | |
%13 = load { i8*, void (i8*)** }*, { i8*, void (i8*)** }** %e | |
%14 = bitcast %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, { i8*, void (i8*)** } }* | |
%15 = getelementptr inbounds { i8, { i8*, void (i8*)** } }, { i8, { i8*, void (i8*)** } }* %14, i32 0, i32 1 | |
%16 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %13, i32 0, i32 0 | |
%17 = load i8*, i8** %16 | |
%18 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %13, i32 0, i32 1 | |
%19 = load void (i8*)**, void (i8*)*** %18 | |
%20 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %15, i32 0, i32 0 | |
store i8* %17, i8** %20 | |
%21 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %15, i32 0, i32 1 | |
store void (i8*)** %19, void (i8*)*** %21 | |
%22 = bitcast { i8*, void (i8*)** }* %13 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %22, i8 29, i64 16, i32 8, i1 false) | |
%23 = getelementptr inbounds %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>", %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0 | |
store i8 1, i8* %23 | |
call void @"_ZN70Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$9drop.471917ha2961773cdf5e193E"({ i8*, void (i8*)** }* %13) | |
%24 = bitcast { i8*, void (i8*)** }* %13 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %24, i8 29, i64 16, i32 8, i1 false) | |
br label %join | |
match_else: ; preds = %entry-block | |
unreachable | |
match_case: ; preds = %entry-block | |
%25 = bitcast %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %self to {}* | |
store {}* %25, {}** %__llmatch | |
br label %case_body | |
match_case2: ; preds = %entry-block | |
%26 = getelementptr inbounds %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>", %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %self, i32 0, i32 0 | |
store { i8*, void (i8*)** }* %26, { i8*, void (i8*)** }** %e | |
br label %case_body1 | |
normal-return: ; preds = %case_body | |
store i32 %12, i32* %9, align 4 | |
%27 = getelementptr inbounds %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>", %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0 | |
store i8 0, i8* %27 | |
br label %join | |
unwind_custom_: ; preds = %case_body | |
%28 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %28, { i8*, i32 }* %2 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%29 = load { i8*, i32 }, { i8*, i32 }* %2 | |
resume { i8*, i32 } %29 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN114core..result..Result$LT$$LP$$RP$$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.498417h206c7a8d816689ebE"(%"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %self) | |
br label %resume | |
join: ; preds = %case_body1, %normal-return | |
call void @"_ZN114core..result..Result$LT$$LP$$RP$$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.498417h206c7a8d816689ebE"(%"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %self) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i32 @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$12closure.4981E"(i64, {}) unnamed_addr #1 { | |
entry-block: | |
%2 = alloca {} | |
%closure_env = alloca %closure.2 | |
%3 = bitcast %closure.2* %closure_env to i64* | |
store i64 %0, i64* %3, align 4 | |
%4 = getelementptr inbounds %closure.2, %closure.2* %closure_env, i32 0, i32 0 | |
%5 = bitcast %"1.core::option::Option<i32>"* %4 to i64* | |
%6 = load i64, i64* %5, align 4 | |
%7 = call i32 @"_ZN6option15Option$LT$T$GT$6unwrap21h12674856327031896243E"(i64 %6) | |
ret i32 %7 | |
} | |
define internal void @"_ZN114core..result..Result$LT$$LP$$RP$$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.498417h206c7a8d816689ebE"(%"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>", %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0, i32 0 | |
%2 = load i8*, i8** %1 | |
%3 = icmp ne i8* %2, null | |
switch i1 %3, label %enum-iter-ret-void [ | |
i1 false, label %enum-iter-variant-0 | |
i1 true, label %enum-iter-variant-1 | |
] | |
enum-iter-ret-void: ; preds = %entry-block | |
ret void | |
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0 | |
ret void | |
enum-iter-variant-0: ; preds = %entry-block | |
%4 = bitcast %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %0 to {}* | |
br label %enum-iter-next | |
enum-iter-variant-1: ; preds = %entry-block | |
%5 = getelementptr inbounds %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>", %"1.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0 | |
call void @"_ZN70Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$9drop.471917ha2961773cdf5e193E"({ i8*, void (i8*)** }* %5) | |
br label %enum-iter-next | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i32 @"_ZN6option15Option$LT$T$GT$6unwrap21h12674856327031896243E"(i64) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"1.core::option::Option<i32>" | |
%__llmatch = alloca i32* | |
%val = alloca i32 | |
%1 = bitcast %"1.core::option::Option<i32>"* %self to i64* | |
store i64 %0, i64* %1, align 4 | |
%2 = getelementptr inbounds %"1.core::option::Option<i32>", %"1.core::option::Option<i32>"* %self, i32 0, i32 0 | |
%3 = load i32, i32* %2, !range !7 | |
switch i32 %3, label %match_else [ | |
i32 1, label %match_case | |
i32 0, label %match_case2 | |
] | |
case_body: ; preds = %match_case | |
%4 = load i32*, i32** %__llmatch | |
%5 = load i32, i32* %4, align 4 | |
store i32 %5, i32* %val, align 4 | |
%6 = load i32, i32* %val, align 4 | |
br label %join | |
case_body1: ; preds = %match_case2 | |
call void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @"_ZN6option15Option$LT$T$GT$6unwrap14_MSG_FILE_LINE20h9e0bce6065acf43cknOE") | |
unreachable | |
match_else: ; preds = %entry-block | |
unreachable | |
match_case: ; preds = %entry-block | |
%7 = bitcast %"1.core::option::Option<i32>"* %self to { i32, i32 }* | |
%8 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %7, i32 0, i32 1 | |
store i32* %8, i32** %__llmatch | |
br label %case_body | |
match_case2: ; preds = %entry-block | |
br label %case_body1 | |
join: ; preds = %case_body | |
ret i32 %6 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* @"_ZN4cell19UnsafeCell$LT$T$GT$3get20h2493915857101001862E"(%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* dereferenceable(32)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* | |
store %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %0, %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %self, align 8 | |
%1 = load %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*, %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>", %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %1, i32 0, i32 0 | |
ret %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %2 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal dereferenceable(32) %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* @"_ZN3arc18Arc$LT$T$GT$.Deref5deref20h9911102696180501923E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%1 = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%auto_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%2 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref to i8* | |
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 8, i32 8, i1 false) | |
store %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8 | |
%3 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1 | |
%4 = call dereferenceable(48) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h14200732739658287836E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %3) | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %4, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8 | |
%5 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8, !nonnull !1 | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %5, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8 | |
%6 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8, !nonnull !1 | |
%7 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %6, i32 0, i32 2 | |
ret %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %7 | |
} | |
; Function Attrs: uwtable | |
define internal void @_ZN3sys6thread6Thread3new21h15728162040669553108E(%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* noalias nocapture sret dereferenceable(24), i64, %closure.0* noalias nocapture dereferenceable(16) %p) unnamed_addr #0 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%stack = alloca i64 | |
%p1 = alloca %closure.0* | |
%2 = alloca { i8*, i32 } | |
%3 = alloca %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>" | |
%thread = alloca %"2.std::sys::thread::Thread"* | |
%e = alloca %"2.std::io::error::Error"* | |
store i64 %1, i64* %stack, align 8 | |
%4 = invoke i8* @_ZN4heap15exchange_malloc20h295535e6fb0e6dd3MfaE(i64 16, i64 8) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %entry-block | |
%5 = bitcast i8* %4 to %closure.0* | |
%6 = bitcast %closure.0* %p to i8* | |
%7 = bitcast %closure.0* %5 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %7, i8* %6, i64 16, i32 8, i1 false) | |
%8 = bitcast %closure.0* %p to i8* | |
call void @llvm.memset.p0i8.i64(i8* %8, i8 29, i64 16, i32 8, i1 false) | |
store %closure.0* %5, %closure.0** %p1, align 8 | |
%9 = load i64, i64* %stack, align 8 | |
%10 = load %closure.0*, %closure.0** %p1, align 8, !nonnull !1 | |
%11 = bitcast %closure.0* %10 to i8* | |
invoke void @_ZN3sys6thread6Thread10new_thread20h068841bbfb5acc9ejUxE(%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* noalias nocapture sret dereferenceable(24) %3, i64 %9, i8* %11, i8* (i8*)* @_ZN3sys6thread6Thread3new12thread_start20h6675635106069454745E) | |
to label %normal-return2 unwind label %unwind_ast_101760_ | |
unwind_custom_: ; preds = %entry-block | |
%12 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %12, { i8*, i32 }* %2 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%13 = load { i8*, i32 }, { i8*, i32 }* %2 | |
resume { i8*, i32 } %13 | |
clean_custom_: ; preds = %clean_custom_3, %unwind_custom_ | |
call void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.499017h03213aa6cad857e4E"(%closure.0* %p) | |
br label %resume | |
normal-return2: ; preds = %normal-return | |
%14 = getelementptr inbounds %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>", %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %3, i32 0, i32 0 | |
%15 = load i64, i64* %14, !range !2 | |
switch i64 %15, label %match_else [ | |
i64 0, label %match_case | |
i64 1, label %match_case5 | |
] | |
unwind_ast_101760_: ; preds = %normal-return | |
%16 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %16, { i8*, i32 }* %2 | |
br label %clean_ast_101760_ | |
clean_custom_3: ; preds = %clean_ast_101760_ | |
br label %clean_custom_ | |
clean_ast_101760_: ; preds = %clean_ast_101760_8, %unwind_ast_101760_ | |
call void @"_ZN399Box$LT$$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$$GT$9drop.500617h1d275e2afc701128E"(%closure.0** %p1) | |
br label %clean_custom_3 | |
case_body: ; preds = %match_case | |
%17 = load %"2.std::sys::thread::Thread"*, %"2.std::sys::thread::Thread"** %thread | |
%18 = load %closure.0*, %closure.0** %p1, align 8, !nonnull !1 | |
%19 = bitcast %closure.0** %p1 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %19, i8 29, i64 8, i32 8, i1 false) | |
invoke void @_ZN3mem6forget21h16281929343866750913E(%closure.0* noalias dereferenceable(16) %18) | |
to label %normal-return6 unwind label %unwind_custom_7 | |
case_body4: ; preds = %match_case5 | |
%20 = load %"2.std::io::error::Error"*, %"2.std::io::error::Error"** %e | |
%21 = bitcast %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %0 to { i64, %"2.std::io::error::Error" }* | |
%22 = getelementptr inbounds { i64, %"2.std::io::error::Error" }, { i64, %"2.std::io::error::Error" }* %21, i32 0, i32 1 | |
%23 = bitcast %"2.std::io::error::Error"* %20 to i8* | |
%24 = bitcast %"2.std::io::error::Error"* %22 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %24, i8* %23, i64 16, i32 8, i1 false) | |
%25 = bitcast %"2.std::io::error::Error"* %20 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %25, i8 29, i64 16, i32 8, i1 false) | |
%26 = getelementptr inbounds %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>", %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %0, i32 0, i32 0 | |
store i64 1, i64* %26 | |
call void @_ZN21std..io..error..Error9drop.472817hb777fe86563aa27aE(%"2.std::io::error::Error"* %20) | |
%27 = bitcast %"2.std::io::error::Error"* %20 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %27, i8 29, i64 16, i32 8, i1 false) | |
br label %join | |
match_else: ; preds = %normal-return2 | |
unreachable | |
match_case: ; preds = %normal-return2 | |
%28 = bitcast %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %3 to { i64, %"2.std::sys::thread::Thread" }* | |
%29 = getelementptr inbounds { i64, %"2.std::sys::thread::Thread" }, { i64, %"2.std::sys::thread::Thread" }* %28, i32 0, i32 1 | |
store %"2.std::sys::thread::Thread"* %29, %"2.std::sys::thread::Thread"** %thread | |
br label %case_body | |
match_case5: ; preds = %normal-return2 | |
%30 = bitcast %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %3 to { i64, %"2.std::io::error::Error" }* | |
%31 = getelementptr inbounds { i64, %"2.std::io::error::Error" }, { i64, %"2.std::io::error::Error" }* %30, i32 0, i32 1 | |
store %"2.std::io::error::Error"* %31, %"2.std::io::error::Error"** %e | |
br label %case_body4 | |
normal-return6: ; preds = %case_body | |
%32 = bitcast %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %0 to { i64, %"2.std::sys::thread::Thread" }* | |
%33 = getelementptr inbounds { i64, %"2.std::sys::thread::Thread" }, { i64, %"2.std::sys::thread::Thread" }* %32, i32 0, i32 1 | |
%34 = bitcast %"2.std::sys::thread::Thread"* %17 to i8* | |
%35 = bitcast %"2.std::sys::thread::Thread"* %33 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %35, i8* %34, i64 16, i32 8, i1 false) | |
%36 = bitcast %"2.std::sys::thread::Thread"* %17 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %36, i8 29, i64 16, i32 8, i1 false) | |
%37 = getelementptr inbounds %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>", %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %0, i32 0, i32 0 | |
store i64 0, i64* %37 | |
call void @_ZN24std..sys..thread..Thread9drop.433417hcbc9fc29160ac810E(%"2.std::sys::thread::Thread"* %17) | |
%38 = bitcast %"2.std::sys::thread::Thread"* %17 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %38, i8 29, i64 16, i32 8, i1 false) | |
br label %join | |
unwind_custom_7: ; preds = %case_body | |
%39 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %39, { i8*, i32 }* %2 | |
br label %clean_custom_9 | |
clean_ast_101760_8: ; preds = %clean_custom_9 | |
call void @"_ZN81core..result..Result$LT$std..sys..thread..Thread$C$$u20$std..io..error..Error$GT$9drop.501617hdffd08fc3bf06d8fE"(%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %3) | |
br label %clean_ast_101760_ | |
clean_custom_9: ; preds = %unwind_custom_7 | |
call void @_ZN24std..sys..thread..Thread9drop.433417hcbc9fc29160ac810E(%"2.std::sys::thread::Thread"* %17) | |
%40 = bitcast %"2.std::sys::thread::Thread"* %17 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %40, i8 29, i64 16, i32 8, i1 false) | |
br label %clean_ast_101760_8 | |
join: ; preds = %case_body4, %normal-return6 | |
call void @"_ZN81core..result..Result$LT$std..sys..thread..Thread$C$$u20$std..io..error..Error$GT$9drop.501617hdffd08fc3bf06d8fE"(%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %3) | |
call void @"_ZN399Box$LT$$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$$GT$9drop.500617h1d275e2afc701128E"(%closure.0** %p1) | |
call void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.499017h03213aa6cad857e4E"(%closure.0* %p) | |
ret void | |
} | |
define internal void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.499017h03213aa6cad857e4E"(%closure.0*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 0 | |
call void @_ZN19std..thread..Thread9drop.435417h8b181c31c2f05f6bE(%"2.std::thread::Thread"* %1) | |
%2 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 1 | |
%3 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 2 | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470717h00a468cd47b06bf0E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %3) | |
ret void | |
} | |
declare void @_ZN3sys6thread6Thread10new_thread20h068841bbfb5acc9ejUxE(%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* noalias nocapture sret dereferenceable(24), i64, i8*, i8* (i8*)*) unnamed_addr | |
define internal i8* @_ZN3sys6thread6Thread3new12thread_start20h6675635106069454745E(i8*) unnamed_addr { | |
"the block": | |
%1 = alloca i8* | |
store i8* %0, i8** %1 | |
%2 = load i8*, i8** %1 | |
%3 = call i8* @_ZN3sys6thread6Thread3new12thread_start10__rust_abi20h6675635106069454745E(i8* %2) | |
ret i8* %3 | |
} | |
; Function Attrs: uwtable | |
define internal i8* @_ZN3sys6thread6Thread3new12thread_start10__rust_abi20h6675635106069454745E(i8*) unnamed_addr #0 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%main = alloca i8* | |
%main1 = alloca %closure.0* | |
%_handler = alloca %"2.std::sys::stack_overflow::Handler" | |
%1 = alloca { i8*, i32 } | |
%arg = alloca %closure.0 | |
store i8* %0, i8** %main, align 8 | |
%2 = load i8*, i8** %main, align 8 | |
%3 = bitcast i8* %2 to %closure.0* | |
%4 = call noalias dereferenceable(16) %closure.0* @"_ZN5boxed12Box$LT$T$GT$8from_raw20h3438711441766064213E"(%closure.0* %3) | |
store %closure.0* %4, %closure.0** %main1, align 8 | |
%5 = invoke i128 @_ZN3sys14stack_overflow7Handler3new20h7ba1468ac6d7adb27MxE() | |
to label %normal-return unwind label %unwind_ast_101845_ | |
normal-return: ; preds = %entry-block | |
%6 = bitcast %"2.std::sys::stack_overflow::Handler"* %_handler to i128* | |
store i128 %5, i128* %6, align 8 | |
%7 = load %closure.0*, %closure.0** %main1, align 8, !nonnull !1 | |
%8 = bitcast %closure.0* %7 to i8* | |
%9 = bitcast %closure.0* %arg to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* %8, i64 16, i32 8, i1 false) | |
%10 = bitcast %closure.0* %7 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %10, i8 29, i64 16, i32 8, i1 false) | |
invoke void @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$12closure.4849E"(%closure.0* noalias nocapture dereferenceable(16) %arg) | |
to label %normal-return2 unwind label %unwind_ast_101845_3 | |
unwind_ast_101845_: ; preds = %entry-block | |
%11 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %11, { i8*, i32 }* %1 | |
br label %clean_ast_101845_ | |
resume: ; preds = %clean_ast_101845_ | |
%12 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %12 | |
clean_ast_101845_: ; preds = %clean_ast_101845_4, %unwind_ast_101845_ | |
call void @"_ZN399Box$LT$$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$$GT$9drop.500617h1d275e2afc701128E"(%closure.0** %main1) | |
br label %resume | |
normal-return2: ; preds = %normal-return | |
call void @_ZN33std..sys..stack_overflow..Handler9drop.500917h2ef79e601f7d60b6E(%"2.std::sys::stack_overflow::Handler"* %_handler) | |
call void @"_ZN399Box$LT$$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$$GT$9drop.500617h1d275e2afc701128E"(%closure.0** %main1) | |
ret i8* null | |
unwind_ast_101845_3: ; preds = %normal-return | |
%13 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %13, { i8*, i32 }* %1 | |
br label %clean_ast_101845_4 | |
clean_ast_101845_4: ; preds = %unwind_ast_101845_3 | |
call void @_ZN33std..sys..stack_overflow..Handler9drop.500917h2ef79e601f7d60b6E(%"2.std::sys::stack_overflow::Handler"* %_handler) | |
br label %clean_ast_101845_ | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal noalias dereferenceable(16) %closure.0* @"_ZN5boxed12Box$LT$T$GT$8from_raw20h3438711441766064213E"(%closure.0*) unnamed_addr #1 { | |
entry-block: | |
%raw = alloca %closure.0* | |
store %closure.0* %0, %closure.0** %raw, align 8 | |
%1 = load %closure.0*, %closure.0** %raw, align 8 | |
ret %closure.0* %1 | |
} | |
declare i128 @_ZN3sys14stack_overflow7Handler3new20h7ba1468ac6d7adb27MxE() unnamed_addr | |
define internal void @"_ZN399Box$LT$$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$$GT$9drop.500617h1d275e2afc701128E"(%closure.0**) unnamed_addr { | |
entry-block: | |
%1 = load %closure.0*, %closure.0** %0 | |
%2 = ptrtoint %closure.0* %1 to i64 | |
%3 = icmp ne i64 %2, 2097865012304223517 | |
br i1 %3, label %cond, label %next | |
next: ; preds = %cond, %entry-block | |
ret void | |
cond: ; preds = %entry-block | |
call void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.499017h03213aa6cad857e4E"(%closure.0* %1) | |
%4 = bitcast %closure.0* %1 to i8* | |
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %4, i64 16, i64 8) | |
br label %next | |
} | |
define internal void @_ZN33std..sys..stack_overflow..Handler9drop.500917h2ef79e601f7d60b6E(%"2.std::sys::stack_overflow::Handler"*) unnamed_addr personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%1 = alloca { i8*, i32 } | |
%2 = getelementptr inbounds %"2.std::sys::stack_overflow::Handler", %"2.std::sys::stack_overflow::Handler"* %0, i32 0, i32 1 | |
%3 = load i8, i8* %2, align 1 | |
%4 = icmp ne i8 %3, -44 | |
%5 = icmp ne i8 %3, 29 | |
%6 = and i1 %4, %5 | |
br i1 %6, label %cond, label %next | |
next: ; preds = %cond, %entry-block | |
%7 = icmp eq i8 %3, -44 | |
br i1 %7, label %cond2, label %next1 | |
cond: ; preds = %entry-block | |
call void @llvm.debugtrap() | |
br label %next | |
next1: ; preds = %normal-return, %next | |
ret void | |
cond2: ; preds = %next | |
invoke void @_ZN3sys14stack_overflow12Handler.Drop4drop20h93942a1d7b1d5c78gNxE(%"2.std::sys::stack_overflow::Handler"* dereferenceable(16) %0) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %cond2 | |
call void @_ZN33std..sys..stack_overflow..Handler9drop.501217h2ef79e601f7d60b6E(%"2.std::sys::stack_overflow::Handler"* %0) | |
br label %next1 | |
unwind_custom_: ; preds = %cond2 | |
%8 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %8, { i8*, i32 }* %1 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%9 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %9 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @_ZN33std..sys..stack_overflow..Handler9drop.501217h2ef79e601f7d60b6E(%"2.std::sys::stack_overflow::Handler"* %0) | |
br label %resume | |
} | |
declare void @_ZN3sys14stack_overflow12Handler.Drop4drop20h93942a1d7b1d5c78gNxE(%"2.std::sys::stack_overflow::Handler"* dereferenceable(16)) unnamed_addr | |
define internal void @_ZN33std..sys..stack_overflow..Handler9drop.501217h2ef79e601f7d60b6E(%"2.std::sys::stack_overflow::Handler"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"2.std::sys::stack_overflow::Handler", %"2.std::sys::stack_overflow::Handler"* %0, i32 0, i32 0 | |
ret void | |
} | |
; Function Attrs: uwtable | |
define internal void @_ZN3mem6forget21h16281929343866750913E(%closure.0* noalias dereferenceable(16)) unnamed_addr #0 { | |
entry-block: | |
%t = alloca %closure.0* | |
store %closure.0* %0, %closure.0** %t, align 8 | |
%1 = load %closure.0*, %closure.0** %t, align 8, !nonnull !1 | |
%2 = bitcast %closure.0** %t to i8* | |
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 8, i32 8, i1 false) | |
call void @"_ZN399Box$LT$$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$2$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$$GT$9drop.500617h1d275e2afc701128E"(%closure.0** %t) | |
ret void | |
} | |
define internal void @"_ZN81core..result..Result$LT$std..sys..thread..Thread$C$$u20$std..io..error..Error$GT$9drop.501617hdffd08fc3bf06d8fE"(%"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>", %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %0, i32 0, i32 0 | |
%2 = load i64, i64* %1 | |
switch i64 %2, label %enum-iter-ret-void [ | |
i64 0, label %enum-iter-variant-0 | |
i64 1, label %enum-iter-variant-1 | |
] | |
enum-iter-ret-void: ; preds = %entry-block | |
ret void | |
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0 | |
ret void | |
enum-iter-variant-0: ; preds = %entry-block | |
%3 = bitcast %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %0 to { i64, %"2.std::sys::thread::Thread" }* | |
%4 = getelementptr inbounds { i64, %"2.std::sys::thread::Thread" }, { i64, %"2.std::sys::thread::Thread" }* %3, i32 0, i32 1 | |
call void @_ZN24std..sys..thread..Thread9drop.433417hcbc9fc29160ac810E(%"2.std::sys::thread::Thread"* %4) | |
br label %enum-iter-next | |
enum-iter-variant-1: ; preds = %entry-block | |
%5 = bitcast %"1.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %0 to { i64, %"2.std::io::error::Error" }* | |
%6 = getelementptr inbounds { i64, %"2.std::io::error::Error" }, { i64, %"2.std::io::error::Error" }* %5, i32 0, i32 1 | |
call void @_ZN21std..io..error..Error9drop.472817hb777fe86563aa27aE(%"2.std::io::error::Error"* %6) | |
br label %enum-iter-next | |
} | |
; Function Attrs: uwtable | |
define internal void @"_ZN7convert15T.From$LT$T$GT$4from20h2997837675504574822E"(%"2.std::io::error::Error"* noalias nocapture sret dereferenceable(16), %"2.std::io::error::Error"* noalias nocapture dereferenceable(16) %t) unnamed_addr #0 { | |
entry-block: | |
%1 = bitcast %"2.std::io::error::Error"* %t to i8* | |
%2 = bitcast %"2.std::io::error::Error"* %0 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %2, i8* %1, i64 16, i32 8, i1 false) | |
%3 = bitcast %"2.std::io::error::Error"* %t to i8* | |
call void @llvm.memset.p0i8.i64(i8* %3, i8 29, i64 16, i32 8, i1 false) | |
call void @_ZN21std..io..error..Error9drop.472817hb777fe86563aa27aE(%"2.std::io::error::Error"* %t) | |
ret void | |
} | |
declare void @_ZN6thread7Builder3new20hd61460f72f72a351ezbE(%"2.std::thread::Builder"* noalias nocapture sret dereferenceable(40)) unnamed_addr | |
; Function Attrs: uwtable | |
define internal void @"_ZN6thread19JoinHandle$LT$T$GT$4join21h17144207033677885488E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24), %"2.std::thread::JoinHandle<i32>"* noalias nocapture dereferenceable(40) %self) unnamed_addr #0 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%1 = alloca { i8*, i32 } | |
%2 = getelementptr inbounds %"2.std::thread::JoinHandle<i32>", %"2.std::thread::JoinHandle<i32>"* %self, i32 0, i32 0 | |
invoke void @"_ZN6thread18JoinInner$LT$T$GT$4join21h11198257803181207260E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24) %0, %"2.std::thread::JoinInner<i32>"* dereferenceable(40) %2) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %entry-block | |
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.432517h7f68f48c9da6347cE"(%"2.std::thread::JoinHandle<i32>"* %self) | |
ret void | |
unwind_custom_: ; preds = %entry-block | |
%3 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %3, { i8*, i32 }* %1 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%4 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %4 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.432517h7f68f48c9da6347cE"(%"2.std::thread::JoinHandle<i32>"* %self) | |
br label %resume | |
} | |
; Function Attrs: uwtable | |
define internal void @"_ZN6thread18JoinInner$LT$T$GT$4join21h11198257803181207260E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24), %"2.std::thread::JoinInner<i32>"* dereferenceable(40)) unnamed_addr #0 { | |
entry-block: | |
%self = alloca %"2.std::thread::JoinInner<i32>"* | |
%2 = alloca %"2.std::sys::thread::Thread" | |
%3 = alloca %"1.core::option::Option<std::sys::thread::Thread>" | |
%4 = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>" | |
%5 = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* | |
%overloaded_deref = alloca %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* | |
store %"2.std::thread::JoinInner<i32>"* %1, %"2.std::thread::JoinInner<i32>"** %self, align 8 | |
%6 = load %"2.std::thread::JoinInner<i32>"*, %"2.std::thread::JoinInner<i32>"** %self, align 8, !nonnull !1 | |
%7 = getelementptr inbounds %"2.std::thread::JoinInner<i32>", %"2.std::thread::JoinInner<i32>"* %6, i32 0, i32 0 | |
call void @"_ZN6option15Option$LT$T$GT$4take21h10720485503137548678E"(%"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24) %3, %"1.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24) %7) | |
%8 = call i128 @"_ZN6option15Option$LT$T$GT$6unwrap20h1038959707559597737E"(%"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %3) | |
%9 = bitcast %"2.std::sys::thread::Thread"* %2 to i128* | |
store i128 %8, i128* %9, align 8 | |
%10 = bitcast %"2.std::sys::thread::Thread"* %2 to i128* | |
%11 = load i128, i128* %10, align 8 | |
call void @_ZN3sys6thread6Thread4join20hc2a4a2c111431794Q5xE(i128 %11) | |
%12 = load %"2.std::thread::JoinInner<i32>"*, %"2.std::thread::JoinInner<i32>"** %self, align 8, !nonnull !1 | |
%13 = getelementptr inbounds %"2.std::thread::JoinInner<i32>", %"2.std::thread::JoinInner<i32>"* %12, i32 0, i32 2 | |
%14 = getelementptr inbounds %"2.std::thread::Packet<i32>", %"2.std::thread::Packet<i32>"* %13, i32 0, i32 0 | |
%15 = call dereferenceable(32) %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* @"_ZN3arc18Arc$LT$T$GT$.Deref5deref20h9911102696180501923E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %14) | |
store %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %15, %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %overloaded_deref, align 8 | |
%16 = load %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*, %"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %overloaded_deref, align 8, !nonnull !1 | |
%17 = call %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* @"_ZN4cell19UnsafeCell$LT$T$GT$3get20h2493915857101001862E"(%"1.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* dereferenceable(32) %16) | |
store %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %17, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %5, align 8 | |
%18 = load %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %5, align 8 | |
call void @"_ZN6option15Option$LT$T$GT$4take20h2701260149719641138E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32) %4, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32) %18) | |
call void @"_ZN6option15Option$LT$T$GT$6unwrap20h8081534536588428311E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24) %0, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %4) | |
ret void | |
} | |
declare void @_ZN3sys6thread6Thread4join20hc2a4a2c111431794Q5xE(i128) unnamed_addr | |
; Function Attrs: inlinehint uwtable | |
define internal i128 @"_ZN6option15Option$LT$T$GT$6unwrap20h1038959707559597737E"(%"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %self) unnamed_addr #1 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%sret_slot = alloca %"2.std::sys::thread::Thread" | |
%val = alloca %"2.std::sys::thread::Thread"* | |
%0 = alloca { i8*, i32 } | |
%1 = getelementptr inbounds %"1.core::option::Option<std::sys::thread::Thread>", %"1.core::option::Option<std::sys::thread::Thread>"* %self, i32 0, i32 0 | |
%2 = load i64, i64* %1, !range !2 | |
switch i64 %2, label %match_else [ | |
i64 1, label %match_case | |
i64 0, label %match_case2 | |
] | |
case_body: ; preds = %match_case | |
%3 = load %"2.std::sys::thread::Thread"*, %"2.std::sys::thread::Thread"** %val | |
%4 = bitcast %"2.std::sys::thread::Thread"* %3 to i8* | |
%5 = bitcast %"2.std::sys::thread::Thread"* %sret_slot to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 16, i32 8, i1 false) | |
%6 = bitcast %"2.std::sys::thread::Thread"* %3 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 16, i32 8, i1 false) | |
call void @_ZN24std..sys..thread..Thread9drop.433417hcbc9fc29160ac810E(%"2.std::sys::thread::Thread"* %3) | |
%7 = bitcast %"2.std::sys::thread::Thread"* %3 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %7, i8 29, i64 16, i32 8, i1 false) | |
br label %join | |
case_body1: ; preds = %match_case2 | |
invoke void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @"_ZN6option15Option$LT$T$GT$6unwrap14_MSG_FILE_LINE20h9e0bce6065acf43cknOE") | |
to label %normal-return unwind label %unwind_custom_ | |
match_else: ; preds = %entry-block | |
unreachable | |
match_case: ; preds = %entry-block | |
%8 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %self to { i64, %"2.std::sys::thread::Thread" }* | |
%9 = getelementptr inbounds { i64, %"2.std::sys::thread::Thread" }, { i64, %"2.std::sys::thread::Thread" }* %8, i32 0, i32 1 | |
store %"2.std::sys::thread::Thread"* %9, %"2.std::sys::thread::Thread"** %val | |
br label %case_body | |
match_case2: ; preds = %entry-block | |
br label %case_body1 | |
normal-return: ; preds = %case_body1 | |
unreachable | |
unwind_custom_: ; preds = %case_body1 | |
%10 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %10, { i8*, i32 }* %0 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%11 = load { i8*, i32 }, { i8*, i32 }* %0 | |
resume { i8*, i32 } %11 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.433117h39fed133f93a1204E"(%"1.core::option::Option<std::sys::thread::Thread>"* %self) | |
br label %resume | |
join: ; preds = %case_body | |
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.433117h39fed133f93a1204E"(%"1.core::option::Option<std::sys::thread::Thread>"* %self) | |
%12 = bitcast %"2.std::sys::thread::Thread"* %sret_slot to i128* | |
%13 = load i128, i128* %12, align 8 | |
ret i128 %13 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN6option15Option$LT$T$GT$4take21h10720485503137548678E"(%"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24), %"1.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"1.core::option::Option<std::sys::thread::Thread>"* | |
%const = alloca %"1.core::option::Option<std::sys::thread::Thread>" | |
store %"1.core::option::Option<std::sys::thread::Thread>"* %1, %"1.core::option::Option<std::sys::thread::Thread>"** %self, align 8 | |
%2 = load %"1.core::option::Option<std::sys::thread::Thread>"*, %"1.core::option::Option<std::sys::thread::Thread>"** %self, align 8, !nonnull !1 | |
%3 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %const to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %3, i8* bitcast ({ i64, [16 x i8] }* @const5026 to i8*), i64 24, i32 8, i1 false) | |
call void @_ZN3mem7replace20h8821390232188169964E(%"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24) %0, %"1.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24) %2, %"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %const) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3mem7replace20h8821390232188169964E(%"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24), %"1.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24), %"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %src) unnamed_addr #1 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%dest = alloca %"1.core::option::Option<std::sys::thread::Thread>"* | |
%2 = alloca { i8*, i32 } | |
store %"1.core::option::Option<std::sys::thread::Thread>"* %1, %"1.core::option::Option<std::sys::thread::Thread>"** %dest, align 8 | |
%3 = load %"1.core::option::Option<std::sys::thread::Thread>"*, %"1.core::option::Option<std::sys::thread::Thread>"** %dest, align 8, !nonnull !1 | |
invoke void @_ZN3mem4swap20h9121132774799370807E(%"1.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24) %3, %"1.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24) %src) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %entry-block | |
%4 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %src to i8* | |
%5 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %0 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 24, i32 8, i1 false) | |
%6 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %src to i8* | |
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 24, i32 8, i1 false) | |
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.433117h39fed133f93a1204E"(%"1.core::option::Option<std::sys::thread::Thread>"* %src) | |
ret void | |
unwind_custom_: ; preds = %entry-block | |
%7 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %7, { i8*, i32 }* %2 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%8 = load { i8*, i32 }, { i8*, i32 }* %2 | |
resume { i8*, i32 } %8 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.433117h39fed133f93a1204E"(%"1.core::option::Option<std::sys::thread::Thread>"* %src) | |
br label %resume | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3mem4swap20h9121132774799370807E(%"1.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24), %"1.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24)) unnamed_addr #1 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%x = alloca %"1.core::option::Option<std::sys::thread::Thread>"* | |
%y = alloca %"1.core::option::Option<std::sys::thread::Thread>"* | |
%t = alloca %"1.core::option::Option<std::sys::thread::Thread>" | |
%arg = alloca %"1.core::option::Option<std::sys::thread::Thread>" | |
%2 = alloca { i8*, i32 } | |
store %"1.core::option::Option<std::sys::thread::Thread>"* %0, %"1.core::option::Option<std::sys::thread::Thread>"** %x, align 8 | |
store %"1.core::option::Option<std::sys::thread::Thread>"* %1, %"1.core::option::Option<std::sys::thread::Thread>"** %y, align 8 | |
call void @_ZN3mem13uninitialized20h4833687711301094121E(%"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24) %t) | |
%3 = load %"1.core::option::Option<std::sys::thread::Thread>"*, %"1.core::option::Option<std::sys::thread::Thread>"** %x, align 8, !nonnull !1 | |
%4 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %t to i8* | |
%5 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %3 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %4, i8* %5, i64 24, i32 8, i1 false) | |
%6 = load %"1.core::option::Option<std::sys::thread::Thread>"*, %"1.core::option::Option<std::sys::thread::Thread>"** %y, align 8, !nonnull !1 | |
%7 = load %"1.core::option::Option<std::sys::thread::Thread>"*, %"1.core::option::Option<std::sys::thread::Thread>"** %x, align 8, !nonnull !1 | |
%8 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %7 to i8* | |
%9 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %6 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %8, i8* %9, i64 24, i32 8, i1 false) | |
%10 = load %"1.core::option::Option<std::sys::thread::Thread>"*, %"1.core::option::Option<std::sys::thread::Thread>"** %y, align 8, !nonnull !1 | |
%11 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %10 to i8* | |
%12 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %t to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %11, i8* %12, i64 24, i32 8, i1 false) | |
%13 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %t to i8* | |
%14 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %arg to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %14, i8* %13, i64 24, i32 8, i1 false) | |
%15 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %t to i8* | |
call void @llvm.memset.p0i8.i64(i8* %15, i8 29, i64 24, i32 8, i1 false) | |
invoke void @_ZN3mem6forget21h17850473533916954336E(%"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %arg) | |
to label %normal-return unwind label %unwind_ast_101647_ | |
normal-return: ; preds = %entry-block | |
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.433117h39fed133f93a1204E"(%"1.core::option::Option<std::sys::thread::Thread>"* %t) | |
ret void | |
unwind_ast_101647_: ; preds = %entry-block | |
%16 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %16, { i8*, i32 }* %2 | |
br label %clean_ast_101647_ | |
resume: ; preds = %clean_ast_101647_ | |
%17 = load { i8*, i32 }, { i8*, i32 }* %2 | |
resume { i8*, i32 } %17 | |
clean_ast_101647_: ; preds = %unwind_ast_101647_ | |
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.433117h39fed133f93a1204E"(%"1.core::option::Option<std::sys::thread::Thread>"* %t) | |
br label %resume | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3mem13uninitialized20h4833687711301094121E(%"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24)) unnamed_addr #1 { | |
entry-block: | |
ret void | |
} | |
; Function Attrs: uwtable | |
define internal void @_ZN3mem6forget21h17850473533916954336E(%"1.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %t) unnamed_addr #0 { | |
entry-block: | |
%arg = alloca %"1.core::option::Option<std::sys::thread::Thread>" | |
%0 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %t to i8* | |
%1 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %arg to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* %0, i64 24, i32 8, i1 false) | |
%2 = bitcast %"1.core::option::Option<std::sys::thread::Thread>"* %t to i8* | |
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 24, i32 8, i1 false) | |
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.433117h39fed133f93a1204E"(%"1.core::option::Option<std::sys::thread::Thread>"* %t) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN6option15Option$LT$T$GT$6unwrap20h8081534536588428311E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24), %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %self) unnamed_addr #1 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%val = alloca %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* | |
%1 = alloca { i8*, i32 } | |
%2 = getelementptr inbounds %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>", %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %self, i32 0, i32 0 | |
%3 = load i64, i64* %2, !range !2 | |
switch i64 %3, label %match_else [ | |
i64 1, label %match_case | |
i64 0, label %match_case2 | |
] | |
case_body: ; preds = %match_case | |
%4 = load %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"*, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"** %val | |
%5 = bitcast %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %4 to i8* | |
%6 = bitcast %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %6, i8* %5, i64 24, i32 8, i1 false) | |
%7 = bitcast %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %4 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %7, i8 29, i64 24, i32 8, i1 false) | |
call void @"_ZN109core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.471617h59b33c617b2df913E"(%"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %4) | |
%8 = bitcast %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %4 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %8, i8 29, i64 24, i32 8, i1 false) | |
br label %join | |
case_body1: ; preds = %match_case2 | |
invoke void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @"_ZN6option15Option$LT$T$GT$6unwrap14_MSG_FILE_LINE20h9e0bce6065acf43cknOE") | |
to label %normal-return unwind label %unwind_custom_ | |
match_else: ; preds = %entry-block | |
unreachable | |
match_case: ; preds = %entry-block | |
%9 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %self to { i64, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }* | |
%10 = getelementptr inbounds { i64, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }, { i64, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }* %9, i32 0, i32 1 | |
store %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %10, %"1.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"** %val | |
br label %case_body | |
match_case2: ; preds = %entry-block | |
br label %case_body1 | |
normal-return: ; preds = %case_body1 | |
unreachable | |
unwind_custom_: ; preds = %case_body1 | |
%11 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %11, { i8*, i32 }* %1 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%12 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %12 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.471317h0c1536054c4667a3E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %self) | |
br label %resume | |
join: ; preds = %case_body | |
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.471317h0c1536054c4667a3E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %self) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN6option15Option$LT$T$GT$4take20h2701260149719641138E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32), %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* | |
%const = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>" | |
store %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %1, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %self, align 8 | |
%2 = load %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %self, align 8, !nonnull !1 | |
%3 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %const to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %3, i8* bitcast ({ i64, [24 x i8] }* @const5027 to i8*), i64 32, i32 8, i1 false) | |
call void @_ZN3mem7replace21h14907214768296574916E(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32) %0, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32) %2, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %const) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3mem7replace21h14907214768296574916E(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32), %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32), %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %src) unnamed_addr #1 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%dest = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* | |
%2 = alloca { i8*, i32 } | |
store %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %1, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %dest, align 8 | |
%3 = load %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %dest, align 8, !nonnull !1 | |
invoke void @_ZN3mem4swap20h9946490636545126379E(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32) %3, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32) %src) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %entry-block | |
%4 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %src to i8* | |
%5 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %0 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 32, i32 8, i1 false) | |
%6 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %src to i8* | |
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 32, i32 8, i1 false) | |
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.471317h0c1536054c4667a3E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %src) | |
ret void | |
unwind_custom_: ; preds = %entry-block | |
%7 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %7, { i8*, i32 }* %2 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%8 = load { i8*, i32 }, { i8*, i32 }* %2 | |
resume { i8*, i32 } %8 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.471317h0c1536054c4667a3E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %src) | |
br label %resume | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3mem4swap20h9946490636545126379E(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32), %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32)) unnamed_addr #1 personality i32 (i32, i32, i64, %"2.std::sys_common::libunwind::_Unwind_Exception"*, %"2.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%x = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* | |
%y = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* | |
%t = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>" | |
%arg = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>" | |
%2 = alloca { i8*, i32 } | |
store %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %0, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %x, align 8 | |
store %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %1, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %y, align 8 | |
call void @_ZN3mem13uninitialized20h7835579478381164366E(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32) %t) | |
%3 = load %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %x, align 8, !nonnull !1 | |
%4 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8* | |
%5 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %3 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %4, i8* %5, i64 32, i32 8, i1 false) | |
%6 = load %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %y, align 8, !nonnull !1 | |
%7 = load %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %x, align 8, !nonnull !1 | |
%8 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %7 to i8* | |
%9 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %6 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %8, i8* %9, i64 32, i32 8, i1 false) | |
%10 = load %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %y, align 8, !nonnull !1 | |
%11 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %10 to i8* | |
%12 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %11, i8* %12, i64 32, i32 8, i1 false) | |
%13 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8* | |
%14 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %arg to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %14, i8* %13, i64 32, i32 8, i1 false) | |
%15 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8* | |
call void @llvm.memset.p0i8.i64(i8* %15, i8 29, i64 32, i32 8, i1 false) | |
invoke void @_ZN3mem6forget21h11478358543596308909E(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %arg) | |
to label %normal-return unwind label %unwind_ast_101647_ | |
normal-return: ; preds = %entry-block | |
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.471317h0c1536054c4667a3E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t) | |
ret void | |
unwind_ast_101647_: ; preds = %entry-block | |
%16 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %16, { i8*, i32 }* %2 | |
br label %clean_ast_101647_ | |
resume: ; preds = %clean_ast_101647_ | |
%17 = load { i8*, i32 }, { i8*, i32 }* %2 | |
resume { i8*, i32 } %17 | |
clean_ast_101647_: ; preds = %unwind_ast_101647_ | |
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.471317h0c1536054c4667a3E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t) | |
br label %resume | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3mem13uninitialized20h7835579478381164366E(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32)) unnamed_addr #1 { | |
entry-block: | |
ret void | |
} | |
; Function Attrs: uwtable | |
define internal void @_ZN3mem6forget21h11478358543596308909E(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %t) unnamed_addr #0 { | |
entry-block: | |
%arg = alloca %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>" | |
%0 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8* | |
%1 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %arg to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* %0, i64 32, i32 8, i1 false) | |
%2 = bitcast %"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8* | |
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 32, i32 8, i1 false) | |
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.471317h0c1536054c4667a3E"(%"1.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t) | |
ret void | |
} | |
declare void @_ZN2io5stdio6_print20h9c517a1f8695e043RghE(%"1.core::fmt::Arguments"* noalias nocapture dereferenceable(48)) unnamed_addr | |
; Function Attrs: uwtable | |
define internal void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new21h18080889046923876904E"(%"1.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16), i32* noalias readonly dereferenceable(4), i8 (i32*, %"1.core::fmt::Formatter"*)*) unnamed_addr #0 { | |
entry-block: | |
%x = alloca i32* | |
%f = alloca i8 (i32*, %"1.core::fmt::Formatter"*)* | |
store i32* %1, i32** %x, align 8 | |
store i8 (i32*, %"1.core::fmt::Formatter"*)* %2, i8 (i32*, %"1.core::fmt::Formatter"*)** %f, align 8 | |
%3 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %0, i32 0, i32 1 | |
%4 = load i8 (i32*, %"1.core::fmt::Formatter"*)*, i8 (i32*, %"1.core::fmt::Formatter"*)** %f, align 8 | |
%5 = bitcast i8 (i32*, %"1.core::fmt::Formatter"*)* %4 to i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)* | |
store i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)* %5, i8 (%"1.core::fmt::Void"*, %"1.core::fmt::Formatter"*)** %3 | |
%6 = getelementptr inbounds %"1.core::fmt::ArgumentV1", %"1.core::fmt::ArgumentV1"* %0, i32 0, i32 0 | |
%7 = load i32*, i32** %x, align 8, !nonnull !1 | |
%8 = bitcast i32* %7 to %"1.core::fmt::Void"* | |
store %"1.core::fmt::Void"* %8, %"1.core::fmt::Void"** %6 | |
ret void | |
} | |
declare i8 @_ZN3fmt3num16i32.fmt..Display3fmt20hc117e0f17c173be6gIVE(i32* noalias readonly dereferenceable(4), %"1.core::fmt::Formatter"* dereferenceable(96)) unnamed_addr | |
define i64 @main(i64, i8**) unnamed_addr { | |
top: | |
%2 = call i64 @_ZN2rt10lang_start20h4e03f90385699ce85VyE(i8* bitcast (void ()* @_ZN4main20h789cd5288c0f40dafaaE to i8*), i64 %0, i8** %1) | |
ret i64 %2 | |
} | |
declare i64 @_ZN2rt10lang_start20h4e03f90385699ce85VyE(i8*, i64, i8**) unnamed_addr | |
attributes #0 = { uwtable } | |
attributes #1 = { inlinehint uwtable } | |
attributes #2 = { argmemonly nounwind } | |
attributes #3 = { nounwind } | |
attributes #4 = { cold noinline noreturn } | |
attributes #5 = { noinline uwtable } | |
attributes #6 = { nounwind readnone } | |
attributes #7 = { cold noinline noreturn uwtable } | |
attributes #8 = { noreturn nounwind } | |
!0 = !{i8 0, i8 2} | |
!1 = !{} | |
!2 = !{i64 0, i64 2} | |
!3 = !{i8 0, i8 5} | |
!4 = !{!5} | |
!5 = distinct !{!5, !6, !"_ZN3ptr4read20h8290095400451058155E: argument 0"} | |
!6 = distinct !{!6, !"_ZN3ptr4read20h8290095400451058155E"} | |
!7 = !{i32 0, i32 2} |
This file contains 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 = 'spawn_example.0.rs' | |
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" | |
target triple = "x86_64-unknown-linux-gnu" | |
%str_slice = type { i8*, i64 } | |
%"2.core::marker::PhantomData<&'static mut u8>" = type {} | |
%"2.core::fmt::Formatter" = type { i32, i32, i8, %"2.core::option::Option<usize>", %"2.core::option::Option<usize>", { i8*, void (i8*)** }, %"2.core::slice::Iter<core::fmt::ArgumentV1>", { %"2.core::fmt::ArgumentV1"*, i64 } } | |
%"2.core::option::Option<usize>" = type { i64, [0 x i64], [1 x i64] } | |
%"2.core::slice::Iter<core::fmt::ArgumentV1>" = type { %"2.core::fmt::ArgumentV1"*, %"2.core::fmt::ArgumentV1"*, %"2.core::marker::PhantomData<&'static core::fmt::ArgumentV1>" } | |
%"2.core::fmt::ArgumentV1" = type { %"2.core::fmt::Void"*, i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* } | |
%"2.core::fmt::Void" = type {} | |
%"2.core::marker::PhantomData<&'static core::fmt::ArgumentV1>" = type {} | |
%"1.std::io::error::Error" = type { %"1.std::io::error::Repr" } | |
%"1.std::io::error::Repr" = type { i8, [7 x i8], [1 x i64] } | |
%"2.core::marker::PhantomData<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" = type {} | |
%closure.0 = type { %"1.std::thread::Thread", %closure, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" } | |
%"1.std::thread::Thread" = type { %"5.alloc::arc::Arc<std::thread::Inner>" } | |
%"5.alloc::arc::Arc<std::thread::Inner>" = type { %"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>" } | |
%"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>" = type { %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>", %"2.core::marker::PhantomData<alloc::arc::ArcInner<std::thread::Inner>>" } | |
%"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>" = type { %"5.alloc::arc::ArcInner<std::thread::Inner>"* } | |
%"5.alloc::arc::ArcInner<std::thread::Inner>" = type { %"2.core::sync::atomic::AtomicUsize", %"2.core::sync::atomic::AtomicUsize", %"1.std::thread::Inner" } | |
%"2.core::sync::atomic::AtomicUsize" = type { %"2.core::cell::UnsafeCell<usize>" } | |
%"2.core::cell::UnsafeCell<usize>" = type { i64 } | |
%"1.std::thread::Inner" = type { %"2.core::option::Option<collections::string::String>", %"1.std::sync::mutex::Mutex<bool>", %"1.std::sync::condvar::Condvar" } | |
%"2.core::option::Option<collections::string::String>" = type { %"3.collections::string::String" } | |
%"3.collections::string::String" = type { %"3.collections::vec::Vec<u8>" } | |
%"3.collections::vec::Vec<u8>" = type { %"5.alloc::raw_vec::RawVec<u8>", i64 } | |
%"5.alloc::raw_vec::RawVec<u8>" = type { %"2.core::ptr::Unique<u8>", i64 } | |
%"2.core::ptr::Unique<u8>" = type { %"2.core::nonzero::NonZero<*const u8>", %"2.core::marker::PhantomData<u8>" } | |
%"2.core::nonzero::NonZero<*const u8>" = type { i8* } | |
%"2.core::marker::PhantomData<u8>" = type {} | |
%"1.std::sync::mutex::Mutex<bool>" = type { %"1.std::sync::mutex::StaticMutex"*, %"2.core::cell::UnsafeCell<bool>", i8 } | |
%"1.std::sync::mutex::StaticMutex" = type { %"1.std::sys_common::mutex::Mutex", %"1.std::sys_common::poison::Flag" } | |
%"1.std::sys_common::mutex::Mutex" = type { %"1.std::sys::mutex::Mutex" } | |
%"1.std::sys::mutex::Mutex" = type { %"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>" } | |
%"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>" = type { %"7.libc::unix::notbsd::linux::pthread_mutex_t" } | |
%"7.libc::unix::notbsd::linux::pthread_mutex_t" = type { [0 x i64], [40 x i8] } | |
%"1.std::sys_common::poison::Flag" = type { %"2.core::cell::Cell<bool>" } | |
%"2.core::cell::Cell<bool>" = type { %"2.core::cell::UnsafeCell<bool>" } | |
%"2.core::cell::UnsafeCell<bool>" = type { i8 } | |
%"1.std::sync::condvar::Condvar" = type { %"1.std::sync::condvar::StaticCondvar"*, i8 } | |
%"1.std::sync::condvar::StaticCondvar" = type { %"1.std::sys_common::condvar::Condvar", %"2.core::sync::atomic::AtomicUsize" } | |
%"1.std::sys_common::condvar::Condvar" = type { %"1.std::sys::condvar::Condvar" } | |
%"1.std::sys::condvar::Condvar" = type { %"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_cond_t>" } | |
%"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_cond_t>" = type { %"7.libc::unix::notbsd::linux::pthread_cond_t" } | |
%"7.libc::unix::notbsd::linux::pthread_cond_t" = type { [0 x i64], [48 x i8] } | |
%"2.core::marker::PhantomData<alloc::arc::ArcInner<std::thread::Inner>>" = type {} | |
%closure = type {} | |
%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" = type { %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" } | |
%"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" = type { %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"2.core::marker::PhantomData<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" } | |
%"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" = type { %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* } | |
%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" = type { %"2.core::sync::atomic::AtomicUsize", %"2.core::sync::atomic::AtomicUsize", %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>" } | |
%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>" = type { %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>" } | |
%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>" = type { i64, [0 x i64], [3 x i64] } | |
%"1.std::thread::JoinHandle<i32>" = type { %"1.std::thread::JoinInner<i32>" } | |
%"1.std::thread::JoinInner<i32>" = type { %"2.core::option::Option<std::sys::thread::Thread>", %"1.std::thread::Thread", %"1.std::thread::Packet<i32>" } | |
%"2.core::option::Option<std::sys::thread::Thread>" = type { i64, [0 x i64], [2 x i64] } | |
%"1.std::thread::Packet<i32>" = type { %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" } | |
%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" = type { i8, [7 x i8], [2 x i64] } | |
%"2.core::fmt::Arguments" = type { { %str_slice*, i64 }, %"2.core::option::Option<&'static [core::fmt::rt::v1::Argument]>", { %"2.core::fmt::ArgumentV1"*, i64 } } | |
%"2.core::option::Option<&'static [core::fmt::rt::v1::Argument]>" = type { { %"2.core::fmt::rt::v1::Argument"*, i64 } } | |
%"2.core::fmt::rt::v1::Argument" = type { %"2.core::fmt::rt::v1::Position", %"2.core::fmt::rt::v1::FormatSpec" } | |
%"2.core::fmt::rt::v1::Position" = type { i64, [0 x i64], [1 x i64] } | |
%"2.core::fmt::rt::v1::FormatSpec" = type { i32, i8, i32, %"2.core::fmt::rt::v1::Count", %"2.core::fmt::rt::v1::Count" } | |
%"2.core::fmt::rt::v1::Count" = type { i64, [0 x i64], [1 x i64] } | |
%"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>" = type { i64, [0 x i64], [5 x i64] } | |
%"1.std::thread::Builder" = type { %"2.core::option::Option<collections::string::String>", %"2.core::option::Option<usize>" } | |
%"1.std::sys::thread::Thread" = type { i64, i8 } | |
%"1.std::sys_common::libunwind::_Unwind_Exception" = type { i64, void (i32, %"1.std::sys_common::libunwind::_Unwind_Exception"*)*, [6 x i64] } | |
%"1.std::sys_common::libunwind::_Unwind_Context" = type {} | |
%"2.core::slice::IterMut<u8>" = type { i8*, i8*, %"2.core::marker::PhantomData<&'static mut u8>" } | |
%"2.core::raw::Slice<u8>" = type { i8*, i64 } | |
%"2.core::result::Result<(), core::fmt::Error>" = type { i8, [0 x i8], [0 x i8] } | |
%"1.std::io::error::Custom" = type { i8, { i8*, void (i8*)** } } | |
%"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>" = type { i64, [0 x i64], [2 x i64] } | |
%"2.core::option::Option<&'static str>" = type { %str_slice } | |
%"2.core::option::Option<i32>" = type { i32, [0 x i32], [1 x i32] } | |
%"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>" = type { { i8*, void (i8*)** } } | |
%closure.1 = type { %closure, %"2.core::option::Option<i32>"* } | |
%closure.2 = type { %"2.core::option::Option<i32>" } | |
%"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" = type { %closure.1 } | |
@const4241 = internal unnamed_addr constant i8 29, align 1 | |
@const4242 = internal unnamed_addr constant i64 2097865012304223517, align 8 | |
@const4261 = internal unnamed_addr constant i64 1, align 8 | |
@const4262 = internal unnamed_addr constant i8 1, align 1 | |
@_ZN4sync6atomic5fence14_MSG_FILE_LINE20h9e0bce6065acf43cSdLE = external global { %str_slice, %str_slice, i32 } | |
@const4283 = internal unnamed_addr constant i8 2, align 1 | |
@const4346 = internal unnamed_addr constant i64 0, align 8 | |
@const4347 = internal unnamed_addr constant i8* inttoptr (i64 1 to i8*), align 8 | |
@const4466 = internal unnamed_addr constant i8* null, align 8 | |
@const4485 = internal unnamed_addr constant %"2.core::marker::PhantomData<&'static mut u8>" zeroinitializer, align 1 | |
@str4511 = internal constant [31 x i8] c"arithmetic operation overflowed" | |
@str4513 = internal constant [26 x i8] c"../src/liballoc/raw_vec.rs" | |
@panic_loc4514 = internal unnamed_addr constant { %str_slice, %str_slice, i32 } { %str_slice { i8* getelementptr inbounds ([31 x i8], [31 x i8]* @str4511, i32 0, i32 0), i64 31 }, %str_slice { i8* getelementptr inbounds ([26 x i8], [26 x i8]* @str4513, i32 0, i32 0), i64 26 }, i32 565 }, align 8 | |
@const4534 = internal unnamed_addr constant i8 0, align 1 | |
@const4585 = internal unnamed_addr constant { { i8*, i8* } } zeroinitializer, align 8 | |
@_ZN6result13unwrap_failed15__STATIC_FMTSTR20hf92ae00c19516543Q5OE = external global { %str_slice*, i64 } | |
@const4589 = internal unnamed_addr constant i8 (%str_slice*, %"2.core::fmt::Formatter"*)* @"_ZN3fmt25_$RF$$u27$a$u20$T.Display3fmt21h14280652299265841549E", align 8 | |
@const4609 = internal unnamed_addr constant i8 (%"1.std::io::error::Error"*, %"2.core::fmt::Formatter"*)* @_ZN2io5error24Error...core..fmt..Debug3fmt20h8da91e579551ef4dmhgE, align 8 | |
@_ZN6result13unwrap_failed10_FILE_LINE20h4a56c969ed2d4d85A5OE = external global { %str_slice, i32 } | |
@str4610 = internal constant [43 x i8] c"called `Result::unwrap()` on an `Err` value" | |
@const4611 = internal unnamed_addr constant %str_slice { i8* getelementptr inbounds ([43 x i8], [43 x i8]* @str4610, i32 0, i32 0), i64 43 }, align 8 | |
@const4656 = internal unnamed_addr constant i64 -9223372036854775808, align 8 | |
@const4657 = internal unnamed_addr constant i64 9223372036854775807, align 8 | |
@const4668 = internal unnamed_addr constant {}* inttoptr (i64 1 to {}*), align 8 | |
@const4685 = internal unnamed_addr constant { { i64 } } { { i64 } { i64 1 } }, align 8 | |
@const4692 = internal unnamed_addr constant %"2.core::marker::PhantomData<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" zeroinitializer, align 1 | |
@const4710 = internal unnamed_addr constant { { i64, [24 x i8] } } { { i64, [24 x i8] } { i64 0, [24 x i8] undef } }, align 8 | |
@const4717 = internal unnamed_addr constant { i32, [4 x i8] } { i32 0, [4 x i8] undef }, align 4 | |
@"_ZN6option15Option$LT$T$GT$6unwrap14_MSG_FILE_LINE20h9e0bce6065acf43cknOE" = external global { %str_slice, %str_slice, i32 } | |
@const4830 = internal unnamed_addr constant { { {}, i8* } } zeroinitializer, align 8 | |
@const4831 = internal unnamed_addr constant void (i8*)* @_ZN10sys_common6unwind3try6try_fn20h1306342228717066690E, align 8 | |
@vtable4858 = internal unnamed_addr constant { void (%closure.0*)*, i64, i64, void (%closure.0*, {})* } { void (%closure.0*)* @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.485217h6242f803e6a3193cE", i64 16, i64 8, void (%closure.0*, {})* @"_ZN5boxed16F.FnBox$LT$A$GT$8call_box21h17736015687154337904E" }, align 8 | |
@const4865 = internal unnamed_addr constant i32 2, align 4 | |
@const4866 = internal unnamed_addr constant %closure zeroinitializer, align 1 | |
@const4870 = internal unnamed_addr constant { i64, [16 x i8] } { i64 0, [16 x i8] undef }, align 8 | |
@const4871 = internal unnamed_addr constant { i64, [24 x i8] } { i64 0, [24 x i8] undef }, align 8 | |
@_ZN4main15__STATIC_FMTSTR20h0fc7de54f63d9caaDaaE = internal constant { %str_slice*, i64 } { %str_slice* getelementptr inbounds ([2 x %str_slice], [2 x %str_slice]* @ref4878, i32 0, i32 0), i64 2 }, align 8 | |
@const4875 = internal unnamed_addr constant i8 (i32*, %"2.core::fmt::Formatter"*)* @_ZN3fmt3num16i32.fmt..Display3fmt20hc117e0f17c173be6gIVE, align 8 | |
@str4876 = internal constant [0 x i8] zeroinitializer | |
@str4877 = internal constant [1 x i8] c"\0A" | |
@ref4878 = internal unnamed_addr constant [2 x %str_slice] [%str_slice { i8* getelementptr inbounds ([0 x i8], [0 x i8]* @str4876, i32 0, i32 0), i64 0 }, %str_slice { i8* getelementptr inbounds ([1 x i8], [1 x i8]* @str4877, i32 0, i32 0), i64 1 }], align 8 | |
; Function Attrs: uwtable | |
define internal void @_ZN4main20hee0a51470adedc0feaaE() unnamed_addr #0 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%dropflag_hint_9 = alloca i8 | |
%x = alloca %"1.std::thread::JoinHandle<i32>" | |
%0 = alloca %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" | |
%arg = alloca %"1.std::thread::JoinHandle<i32>" | |
%1 = alloca { i8*, i32 } | |
%__llmatch = alloca i32* | |
%e = alloca i32 | |
%2 = alloca %"2.core::fmt::Arguments" | |
%3 = alloca { %str_slice*, i64 } | |
%4 = alloca [1 x %"2.core::fmt::ArgumentV1"] | |
%5 = alloca { i32* } | |
%match = alloca { i32* } | |
%6 = bitcast { i32* }* %match to i8* | |
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 8, i32 8, i1 false) | |
%__llmatch4 = alloca i32** | |
%__arg0 = alloca i32* | |
%__coerce_target = alloca { %"2.core::fmt::ArgumentV1"*, i64 } | |
store i8 61, i8* %dropflag_hint_9 | |
call void @_ZN6thread5spawn20h7696498019398179437E(%"1.std::thread::JoinHandle<i32>"* noalias nocapture sret dereferenceable(40) %x, %closure undef) | |
%7 = bitcast %"1.std::thread::JoinHandle<i32>"* %x to i8* | |
%8 = bitcast %"1.std::thread::JoinHandle<i32>"* %arg to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %8, i8* %7, i64 40, i32 8, i1 false) | |
%9 = bitcast %"1.std::thread::JoinHandle<i32>"* %x to i8* | |
call void @llvm.memset.p0i8.i64(i8* %9, i8 29, i64 40, i32 8, i1 false) | |
invoke void @"_ZN6thread19JoinHandle$LT$T$GT$4join21h11682743565137392356E"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24) %0, %"1.std::thread::JoinHandle<i32>"* noalias nocapture dereferenceable(40) %arg) | |
to label %normal-return unwind label %unwind_ast_6_ | |
normal-return: ; preds = %entry-block | |
%10 = getelementptr inbounds %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>", %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0 | |
%11 = load i8, i8* %10, !range !0 | |
switch i8 %11, label %match_else [ | |
i8 0, label %match_case | |
i8 1, label %match_case2 | |
] | |
unwind_ast_6_: ; preds = %entry-block | |
%12 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %12, { i8*, i32 }* %1 | |
br label %clean_ast_6_ | |
resume: ; preds = %clean_ast_6_ | |
%13 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %13 | |
clean_ast_6_: ; preds = %clean_ast_6_7, %unwind_ast_6_ | |
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.419017h4035594c4205a9a2E"(%"1.std::thread::JoinHandle<i32>"* %x) | |
br label %resume | |
case_body: ; preds = %match_case | |
%14 = load i32*, i32** %__llmatch | |
%15 = load i32, i32* %14, align 4 | |
store i32 %15, i32* %e, align 4 | |
%16 = bitcast { %str_slice*, i64 }* %3 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %16, i8* bitcast ({ %str_slice*, i64 }* @_ZN4main15__STATIC_FMTSTR20h0fc7de54f63d9caaDaaE to i8*), i64 16, i32 8, i1 false) | |
%17 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %3, i32 0, i32 0 | |
%18 = load %str_slice*, %str_slice** %17 | |
%19 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %3, i32 0, i32 1 | |
%20 = load i64, i64* %19 | |
%21 = getelementptr inbounds { i32* }, { i32* }* %5, i32 0, i32 0 | |
store i32* %e, i32** %21, align 8 | |
%22 = bitcast { i32* }* %5 to i64* | |
%23 = load i64, i64* %22, align 8 | |
%24 = bitcast { i32* }* %match to i64* | |
store i64 %23, i64* %24, align 8 | |
%25 = getelementptr inbounds { i32* }, { i32* }* %match, i32 0, i32 0 | |
store i32** %25, i32*** %__llmatch4 | |
br label %case_body3 | |
case_body1: ; preds = %match_case2 | |
br label %join10 | |
match_else: ; preds = %normal-return | |
unreachable | |
match_case: ; preds = %normal-return | |
%26 = bitcast %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, i32 }* | |
%27 = getelementptr inbounds { i8, i32 }, { i8, i32 }* %26, i32 0, i32 1 | |
store i32* %27, i32** %__llmatch | |
br label %case_body | |
match_case2: ; preds = %normal-return | |
%28 = bitcast %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, { i8*, void (i8*)** } }* | |
%29 = getelementptr inbounds { i8, { i8*, void (i8*)** } }, { i8, { i8*, void (i8*)** } }* %28, i32 0, i32 1 | |
br label %case_body1 | |
case_body3: ; preds = %case_body | |
%30 = load i32**, i32*** %__llmatch4 | |
%31 = load i32*, i32** %30, align 8, !nonnull !1 | |
store i32* %31, i32** %__arg0, align 8 | |
%32 = getelementptr inbounds [1 x %"2.core::fmt::ArgumentV1"], [1 x %"2.core::fmt::ArgumentV1"]* %4, i32 0, i32 0 | |
%33 = getelementptr inbounds %"2.core::fmt::ArgumentV1", %"2.core::fmt::ArgumentV1"* %32, i32 0 | |
%34 = load i32*, i32** %__arg0, align 8, !nonnull !1 | |
invoke void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new20h7413601074852004310E"(%"2.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16) %33, i32* noalias readonly dereferenceable(4) %34, i8 (i32*, %"2.core::fmt::Formatter"*)* @_ZN3fmt3num16i32.fmt..Display3fmt20hc117e0f17c173be6gIVE) | |
to label %normal-return5 unwind label %unwind_ast_6_6 | |
normal-return5: ; preds = %case_body3 | |
br label %join | |
unwind_ast_6_6: ; preds = %normal-return8, %join, %case_body3 | |
%35 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %35, { i8*, i32 }* %1 | |
br label %clean_ast_6_7 | |
clean_ast_6_7: ; preds = %unwind_ast_6_6 | |
call void @"_ZN109core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.457017h65983c191404b38bE"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0) | |
br label %clean_ast_6_ | |
join: ; preds = %normal-return5 | |
%36 = bitcast [1 x %"2.core::fmt::ArgumentV1"]* %4 to %"2.core::fmt::ArgumentV1"* | |
%37 = getelementptr inbounds { %"2.core::fmt::ArgumentV1"*, i64 }, { %"2.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0 | |
store %"2.core::fmt::ArgumentV1"* %36, %"2.core::fmt::ArgumentV1"** %37 | |
%38 = getelementptr inbounds { %"2.core::fmt::ArgumentV1"*, i64 }, { %"2.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1 | |
store i64 1, i64* %38 | |
%39 = getelementptr inbounds { %"2.core::fmt::ArgumentV1"*, i64 }, { %"2.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0 | |
%40 = load %"2.core::fmt::ArgumentV1"*, %"2.core::fmt::ArgumentV1"** %39 | |
%41 = getelementptr inbounds { %"2.core::fmt::ArgumentV1"*, i64 }, { %"2.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1 | |
%42 = load i64, i64* %41 | |
invoke void @"_ZN3fmt23Arguments$LT$$u27$a$GT$6new_v120he832f0357fe73cd4nLWE"(%"2.core::fmt::Arguments"* noalias nocapture sret dereferenceable(48) %2, %str_slice* noalias nonnull readonly %18, i64 %20, %"2.core::fmt::ArgumentV1"* noalias nonnull readonly %40, i64 %42) | |
to label %normal-return8 unwind label %unwind_ast_6_6 | |
normal-return8: ; preds = %join | |
invoke void @_ZN2io5stdio6_print20h6af5e30262835244TghE(%"2.core::fmt::Arguments"* noalias nocapture dereferenceable(48) %2) | |
to label %normal-return9 unwind label %unwind_ast_6_6 | |
normal-return9: ; preds = %normal-return8 | |
br label %join10 | |
join10: ; preds = %case_body1, %normal-return9 | |
call void @"_ZN109core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.457017h65983c191404b38bE"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0) | |
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.419017h4035594c4205a9a2E"(%"1.std::thread::JoinHandle<i32>"* %x) | |
ret void | |
} | |
; Function Attrs: uwtable | |
define internal void @_ZN6thread5spawn20h7696498019398179437E(%"1.std::thread::JoinHandle<i32>"* noalias nocapture sret dereferenceable(40), %closure) unnamed_addr #0 { | |
entry-block: | |
%f = alloca %closure | |
%2 = alloca %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>" | |
%3 = alloca %"1.std::thread::Builder" | |
call void @_ZN6thread7Builder3new20hd04be2c79ec19f69ezbE(%"1.std::thread::Builder"* noalias nocapture sret dereferenceable(40) %3) | |
call void @_ZN6thread7Builder5spawn21h11032278164270506546E(%"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* noalias nocapture sret dereferenceable(48) %2, %"1.std::thread::Builder"* noalias nocapture dereferenceable(40) %3, %closure undef) | |
call void @"_ZN6result24Result$LT$T$C$$u20$E$GT$6unwrap20h6795052324145421564E"(%"1.std::thread::JoinHandle<i32>"* noalias nocapture sret dereferenceable(40) %0, %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* noalias nocapture dereferenceable(48) %2) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN6result24Result$LT$T$C$$u20$E$GT$6unwrap20h6795052324145421564E"(%"1.std::thread::JoinHandle<i32>"* noalias nocapture sret dereferenceable(40), %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* noalias nocapture dereferenceable(48) %self) unnamed_addr #1 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%t = alloca %"1.std::thread::JoinHandle<i32>"* | |
%e = alloca %"1.std::io::error::Error"* | |
%arg = alloca %"1.std::io::error::Error" | |
%1 = alloca { i8*, i32 } | |
%2 = getelementptr inbounds %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>", %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %self, i32 0, i32 0 | |
%3 = load i64, i64* %2, !range !2 | |
switch i64 %3, label %match_else [ | |
i64 0, label %match_case | |
i64 1, label %match_case2 | |
] | |
case_body: ; preds = %match_case | |
%4 = load %"1.std::thread::JoinHandle<i32>"*, %"1.std::thread::JoinHandle<i32>"** %t | |
%5 = bitcast %"1.std::thread::JoinHandle<i32>"* %4 to i8* | |
%6 = bitcast %"1.std::thread::JoinHandle<i32>"* %0 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %6, i8* %5, i64 40, i32 8, i1 false) | |
%7 = bitcast %"1.std::thread::JoinHandle<i32>"* %4 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %7, i8 29, i64 40, i32 8, i1 false) | |
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.419017h4035594c4205a9a2E"(%"1.std::thread::JoinHandle<i32>"* %4) | |
%8 = bitcast %"1.std::thread::JoinHandle<i32>"* %4 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %8, i8 29, i64 40, i32 8, i1 false) | |
br label %join | |
case_body1: ; preds = %match_case2 | |
%9 = load %"1.std::io::error::Error"*, %"1.std::io::error::Error"** %e | |
%10 = load i8*, i8** getelementptr inbounds (%str_slice, %str_slice* @const4611, i32 0, i32 0) | |
%11 = load i64, i64* getelementptr inbounds (%str_slice, %str_slice* @const4611, i32 0, i32 1) | |
%12 = bitcast %"1.std::io::error::Error"* %9 to i8* | |
%13 = bitcast %"1.std::io::error::Error"* %arg to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %13, i8* %12, i64 16, i32 8, i1 false) | |
%14 = bitcast %"1.std::io::error::Error"* %9 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %14, i8 29, i64 16, i32 8, i1 false) | |
invoke void @_ZN6result13unwrap_failed19h760605379628351383E(i8* noalias nonnull readonly %10, i64 %11, %"1.std::io::error::Error"* noalias nocapture dereferenceable(16) %arg) | |
to label %normal-return unwind label %unwind_custom_ | |
match_else: ; preds = %entry-block | |
unreachable | |
match_case: ; preds = %entry-block | |
%15 = bitcast %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %self to { i64, %"1.std::thread::JoinHandle<i32>" }* | |
%16 = getelementptr inbounds { i64, %"1.std::thread::JoinHandle<i32>" }, { i64, %"1.std::thread::JoinHandle<i32>" }* %15, i32 0, i32 1 | |
store %"1.std::thread::JoinHandle<i32>"* %16, %"1.std::thread::JoinHandle<i32>"** %t | |
br label %case_body | |
match_case2: ; preds = %entry-block | |
%17 = bitcast %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %self to { i64, %"1.std::io::error::Error" }* | |
%18 = getelementptr inbounds { i64, %"1.std::io::error::Error" }, { i64, %"1.std::io::error::Error" }* %17, i32 0, i32 1 | |
store %"1.std::io::error::Error"* %18, %"1.std::io::error::Error"** %e | |
br label %case_body1 | |
normal-return: ; preds = %case_body1 | |
unreachable | |
unwind_custom_: ; preds = %case_body1 | |
%19 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %19, { i8*, i32 }* %1 | |
br label %clean_custom_3 | |
resume: ; preds = %clean_custom_ | |
%20 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %20 | |
clean_custom_: ; preds = %clean_custom_3 | |
call void @"_ZN91core..result..Result$LT$std..thread..JoinHandle$LT$i32$GT$$C$$u20$std..io..error..Error$GT$9drop.461317h34cf5398cb2bde0fE"(%"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %self) | |
br label %resume | |
clean_custom_3: ; preds = %unwind_custom_ | |
call void @_ZN21std..io..error..Error9drop.459117h0f4948ead3fac74eE(%"1.std::io::error::Error"* %9) | |
%21 = bitcast %"1.std::io::error::Error"* %9 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %21, i8 29, i64 16, i32 8, i1 false) | |
br label %clean_custom_ | |
join: ; preds = %case_body | |
call void @"_ZN91core..result..Result$LT$std..thread..JoinHandle$LT$i32$GT$$C$$u20$std..io..error..Error$GT$9drop.461317h34cf5398cb2bde0fE"(%"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %self) | |
ret void | |
} | |
; Function Attrs: argmemonly nounwind | |
declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture readonly, i64, i32, i1) #2 | |
; Function Attrs: argmemonly nounwind | |
declare void @llvm.memset.p0i8.i64(i8* nocapture, i8, i64, i32, i1) #2 | |
define internal void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.419017h4035594c4205a9a2E"(%"1.std::thread::JoinHandle<i32>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"1.std::thread::JoinHandle<i32>", %"1.std::thread::JoinHandle<i32>"* %0, i32 0, i32 0 | |
call void @"_ZN33std..thread..JoinInner$LT$i32$GT$9drop.419317h70541dc80c0009dfE"(%"1.std::thread::JoinInner<i32>"* %1) | |
ret void | |
} | |
define internal void @"_ZN33std..thread..JoinInner$LT$i32$GT$9drop.419317h70541dc80c0009dfE"(%"1.std::thread::JoinInner<i32>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"1.std::thread::JoinInner<i32>", %"1.std::thread::JoinInner<i32>"* %0, i32 0, i32 0 | |
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.419617h3d14b30167ff51f9E"(%"2.core::option::Option<std::sys::thread::Thread>"* %1) | |
%2 = getelementptr inbounds %"1.std::thread::JoinInner<i32>", %"1.std::thread::JoinInner<i32>"* %0, i32 0, i32 1 | |
call void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"* %2) | |
%3 = getelementptr inbounds %"1.std::thread::JoinInner<i32>", %"1.std::thread::JoinInner<i32>"* %0, i32 0, i32 2 | |
call void @"_ZN30std..thread..Packet$LT$i32$GT$9drop.455817h5a9c551b027e0483E"(%"1.std::thread::Packet<i32>"* %3) | |
ret void | |
} | |
define internal void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.419617h3d14b30167ff51f9E"(%"2.core::option::Option<std::sys::thread::Thread>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"2.core::option::Option<std::sys::thread::Thread>", %"2.core::option::Option<std::sys::thread::Thread>"* %0, i32 0, i32 0 | |
%2 = load i64, i64* %1 | |
switch i64 %2, label %enum-iter-ret-void [ | |
i64 0, label %enum-iter-variant-0 | |
i64 1, label %enum-iter-variant-1 | |
] | |
enum-iter-ret-void: ; preds = %entry-block | |
ret void | |
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0 | |
ret void | |
enum-iter-variant-0: ; preds = %entry-block | |
br label %enum-iter-next | |
enum-iter-variant-1: ; preds = %entry-block | |
%3 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %0 to { i64, %"1.std::sys::thread::Thread" }* | |
%4 = getelementptr inbounds { i64, %"1.std::sys::thread::Thread" }, { i64, %"1.std::sys::thread::Thread" }* %3, i32 0, i32 1 | |
call void @_ZN24std..sys..thread..Thread9drop.419917h5b8cd2efe3ae67d8E(%"1.std::sys::thread::Thread"* %4) | |
br label %enum-iter-next | |
} | |
define internal void @_ZN24std..sys..thread..Thread9drop.419917h5b8cd2efe3ae67d8E(%"1.std::sys::thread::Thread"*) unnamed_addr personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%1 = alloca { i8*, i32 } | |
%2 = getelementptr inbounds %"1.std::sys::thread::Thread", %"1.std::sys::thread::Thread"* %0, i32 0, i32 1 | |
%3 = load i8, i8* %2, align 1 | |
%4 = icmp ne i8 %3, -44 | |
%5 = icmp ne i8 %3, 29 | |
%6 = and i1 %4, %5 | |
br i1 %6, label %cond, label %next | |
next: ; preds = %cond, %entry-block | |
%7 = icmp eq i8 %3, -44 | |
br i1 %7, label %cond2, label %next1 | |
cond: ; preds = %entry-block | |
call void @llvm.debugtrap() | |
br label %next | |
next1: ; preds = %normal-return, %next | |
ret void | |
cond2: ; preds = %next | |
invoke void @_ZN3sys6thread11Thread.Drop4drop20h17af70ad5bd3e4c0B7xE(%"1.std::sys::thread::Thread"* dereferenceable(16) %0) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %cond2 | |
call void @_ZN24std..sys..thread..Thread9drop.421617h5b8cd2efe3ae67d8E(%"1.std::sys::thread::Thread"* %0) | |
br label %next1 | |
unwind_custom_: ; preds = %cond2 | |
%8 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %8, { i8*, i32 }* %1 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%9 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %9 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @_ZN24std..sys..thread..Thread9drop.421617h5b8cd2efe3ae67d8E(%"1.std::sys::thread::Thread"* %0) | |
br label %resume | |
} | |
; Function Attrs: nounwind | |
declare void @llvm.debugtrap() #3 | |
declare void @_ZN3sys6thread11Thread.Drop4drop20h17af70ad5bd3e4c0B7xE(%"1.std::sys::thread::Thread"* dereferenceable(16)) unnamed_addr | |
; Function Attrs: nounwind | |
declare i32 @rust_eh_personality(i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*) unnamed_addr #3 | |
define internal void @_ZN24std..sys..thread..Thread9drop.421617h5b8cd2efe3ae67d8E(%"1.std::sys::thread::Thread"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"1.std::sys::thread::Thread", %"1.std::sys::thread::Thread"* %0, i32 0, i32 0 | |
ret void | |
} | |
define internal void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"1.std::thread::Thread", %"1.std::thread::Thread"* %0, i32 0, i32 0 | |
call void @"_ZN41alloc..arc..Arc$LT$std..thread..Inner$GT$9drop.422217hd05f57c09b6baebcE"(%"5.alloc::arc::Arc<std::thread::Inner>"* %1) | |
ret void | |
} | |
define internal void @"_ZN41alloc..arc..Arc$LT$std..thread..Inner$GT$9drop.422217hd05f57c09b6baebcE"(%"5.alloc::arc::Arc<std::thread::Inner>"*) unnamed_addr personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%1 = alloca { i8*, i32 } | |
invoke void @"_ZN3arc17Arc$LT$T$GT$.Drop4drop20h2282913797638012531E"(%"5.alloc::arc::Arc<std::thread::Inner>"* dereferenceable(8) %0) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %entry-block | |
call void @"_ZN41alloc..arc..Arc$LT$std..thread..Inner$GT$9drop.455517hd05f57c09b6baebcE"(%"5.alloc::arc::Arc<std::thread::Inner>"* %0) | |
ret void | |
unwind_custom_: ; preds = %entry-block | |
%2 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %2, { i8*, i32 }* %1 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%3 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %3 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN41alloc..arc..Arc$LT$std..thread..Inner$GT$9drop.455517hd05f57c09b6baebcE"(%"5.alloc::arc::Arc<std::thread::Inner>"* %0) | |
br label %resume | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN3arc17Arc$LT$T$GT$.Drop4drop20h2282913797638012531E"(%"5.alloc::arc::Arc<std::thread::Inner>"* dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"5.alloc::arc::Arc<std::thread::Inner>"* | |
%thin = alloca {}* | |
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"** | |
%1 = alloca i64 | |
%2 = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"* | |
%auto_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"* | |
%3 = bitcast %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref to i8* | |
call void @llvm.memset.p0i8.i64(i8* %3, i8 29, i64 8, i32 8, i1 false) | |
store %"5.alloc::arc::Arc<std::thread::Inner>"* %0, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8 | |
%4 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1 | |
%5 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %4, i32 0, i32 0 | |
%6 = call dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref20h4935991149217615470E"(%"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8) %5) | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"** %6, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8 | |
%7 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"**, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8, !nonnull !1 | |
%8 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %7, align 8 | |
%9 = bitcast %"5.alloc::arc::ArcInner<std::thread::Inner>"* %8 to {}* | |
store {}* %9, {}** %thin, align 8 | |
%10 = load {}*, {}** %thin, align 8 | |
%11 = ptrtoint {}* %10 to i64 | |
%12 = icmp eq i64 %11, 2097865012304223517 | |
br i1 %12, label %then-block-122-, label %next-block | |
then-block-122-: ; preds = %entry-block | |
br label %clean_ast_105_ | |
clean_ast_105_: ; preds = %clean_ast_105_1, %then-block-122- | |
br label %return | |
next-block: ; preds = %entry-block | |
%13 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1 | |
%14 = call dereferenceable(72) %"5.alloc::arc::ArcInner<std::thread::Inner>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h18010354011718457137E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8) %13) | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %14, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %2, align 8 | |
%15 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %2, align 8, !nonnull !1 | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %15, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8 | |
%16 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8, !nonnull !1 | |
%17 = getelementptr inbounds %"5.alloc::arc::ArcInner<std::thread::Inner>", %"5.alloc::arc::ArcInner<std::thread::Inner>"* %16, i32 0, i32 0 | |
%18 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_sub20h8772de3cc84a5649T1KE(%"2.core::sync::atomic::AtomicUsize"* dereferenceable(8) %17, i64 1, i8 1) | |
store i64 %18, i64* %1, align 8 | |
%19 = load i64, i64* %1, align 8 | |
%20 = icmp ne i64 %19, 1 | |
br i1 %20, label %then-block-135-, label %next-block2 | |
then-block-135-: ; preds = %next-block | |
br label %clean_ast_105_1 | |
clean_ast_105_1: ; preds = %then-block-135- | |
br label %clean_ast_105_ | |
next-block2: ; preds = %next-block | |
call void @_ZN4sync6atomic5fence20hfb767f14e632fab6sdLE(i8 2) | |
%21 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1 | |
call void @"_ZN3arc12Arc$LT$T$GT$9drop_slow21h15247882626422542327E"(%"5.alloc::arc::Arc<std::thread::Inner>"* dereferenceable(8) %21) | |
br label %return | |
return: ; preds = %next-block2, %clean_ast_105_ | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref20h4935991149217615470E"(%"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* | |
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"** | |
store %"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* %0, %"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"** %self, align 8 | |
%1 = load %"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"*, %"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>", %"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* %1, i32 0, i32 0 | |
%3 = call dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref20h7257595767559344696E"(%"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8) %2) | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"** %3, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8 | |
%4 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"**, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8, !nonnull !1 | |
ret %"5.alloc::arc::ArcInner<std::thread::Inner>"** %4 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref20h7257595767559344696E"(%"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"* | |
%inner = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"** | |
store %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"* %0, %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"** %self, align 8 | |
%1 = load %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"*, %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>", %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<std::thread::Inner>>"* %1, i32 0, i32 0 | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"** %2, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %inner | |
%3 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"**, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %inner, align 8, !nonnull !1 | |
ret %"5.alloc::arc::ArcInner<std::thread::Inner>"** %3 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN4sync6atomic11AtomicUsize9fetch_sub20h8772de3cc84a5649T1KE(%"2.core::sync::atomic::AtomicUsize"* dereferenceable(8), i64, i8) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"2.core::sync::atomic::AtomicUsize"* | |
%val = alloca i64 | |
%order = alloca i8 | |
%3 = alloca i64* | |
store %"2.core::sync::atomic::AtomicUsize"* %0, %"2.core::sync::atomic::AtomicUsize"** %self, align 8 | |
store i64 %1, i64* %val, align 8 | |
store i8 %2, i8* %order, align 1 | |
%4 = load %"2.core::sync::atomic::AtomicUsize"*, %"2.core::sync::atomic::AtomicUsize"** %self, align 8, !nonnull !1 | |
%5 = getelementptr inbounds %"2.core::sync::atomic::AtomicUsize", %"2.core::sync::atomic::AtomicUsize"* %4, i32 0, i32 0 | |
%6 = call i64* @"_ZN4cell19UnsafeCell$LT$T$GT$3get21h11064512342180801429E"(%"2.core::cell::UnsafeCell<usize>"* dereferenceable(8) %5) | |
store i64* %6, i64** %3, align 8 | |
%7 = load i64*, i64** %3, align 8 | |
%8 = load i64, i64* %val, align 8 | |
%9 = load i8, i8* %order, align 1 | |
%10 = call i64 @_ZN4sync6atomic10atomic_sub20h4499132557994629454E(i64* %7, i64 %8, i8 %9) | |
ret i64 %10 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN4sync6atomic10atomic_sub20h4499132557994629454E(i64*, i64, i8) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca i64 | |
%dst = alloca i64* | |
%val = alloca i64 | |
%order = alloca i8 | |
store i64* %0, i64** %dst, align 8 | |
store i64 %1, i64* %val, align 8 | |
store i8 %2, i8* %order, align 1 | |
%3 = load i8, i8* %order, !range !3 | |
switch i8 %3, label %match_else [ | |
i8 2, label %match_case | |
i8 1, label %match_case5 | |
i8 3, label %match_case6 | |
i8 0, label %match_case7 | |
i8 4, label %match_case8 | |
] | |
case_body: ; preds = %match_case | |
%4 = load i64*, i64** %dst, align 8 | |
%5 = load i64, i64* %val, align 8 | |
%6 = atomicrmw sub i64* %4, i64 %5 acquire | |
store i64 %6, i64* %sret_slot, align 8 | |
br label %join | |
case_body1: ; preds = %match_case5 | |
%7 = load i64*, i64** %dst, align 8 | |
%8 = load i64, i64* %val, align 8 | |
%9 = atomicrmw sub i64* %7, i64 %8 release | |
store i64 %9, i64* %sret_slot, align 8 | |
br label %join | |
case_body2: ; preds = %match_case6 | |
%10 = load i64*, i64** %dst, align 8 | |
%11 = load i64, i64* %val, align 8 | |
%12 = atomicrmw sub i64* %10, i64 %11 acq_rel | |
store i64 %12, i64* %sret_slot, align 8 | |
br label %join | |
case_body3: ; preds = %match_case7 | |
%13 = load i64*, i64** %dst, align 8 | |
%14 = load i64, i64* %val, align 8 | |
%15 = atomicrmw sub i64* %13, i64 %14 monotonic | |
store i64 %15, i64* %sret_slot, align 8 | |
br label %join | |
case_body4: ; preds = %match_case8 | |
%16 = load i64*, i64** %dst, align 8 | |
%17 = load i64, i64* %val, align 8 | |
%18 = atomicrmw sub i64* %16, i64 %17 seq_cst | |
store i64 %18, i64* %sret_slot, align 8 | |
br label %join | |
match_else: ; preds = %entry-block | |
unreachable | |
match_case: ; preds = %entry-block | |
br label %case_body | |
match_case5: ; preds = %entry-block | |
br label %case_body1 | |
match_case6: ; preds = %entry-block | |
br label %case_body2 | |
match_case7: ; preds = %entry-block | |
br label %case_body3 | |
match_case8: ; preds = %entry-block | |
br label %case_body4 | |
join: ; preds = %case_body4, %case_body3, %case_body2, %case_body1, %case_body | |
%19 = load i64, i64* %sret_slot, align 8 | |
ret i64 %19 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64* @"_ZN4cell19UnsafeCell$LT$T$GT$3get21h11064512342180801429E"(%"2.core::cell::UnsafeCell<usize>"* dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"2.core::cell::UnsafeCell<usize>"* | |
store %"2.core::cell::UnsafeCell<usize>"* %0, %"2.core::cell::UnsafeCell<usize>"** %self, align 8 | |
%1 = load %"2.core::cell::UnsafeCell<usize>"*, %"2.core::cell::UnsafeCell<usize>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"2.core::cell::UnsafeCell<usize>", %"2.core::cell::UnsafeCell<usize>"* %1, i32 0, i32 0 | |
ret i64* %2 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal dereferenceable(72) %"5.alloc::arc::ArcInner<std::thread::Inner>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h18010354011718457137E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"5.alloc::arc::Arc<std::thread::Inner>"* | |
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"** | |
store %"5.alloc::arc::Arc<std::thread::Inner>"* %0, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8 | |
%1 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %1, i32 0, i32 0 | |
%3 = call dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref20h4935991149217615470E"(%"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8) %2) | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"** %3, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8 | |
%4 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"**, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8, !nonnull !1 | |
%5 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %4, align 8 | |
ret %"5.alloc::arc::ArcInner<std::thread::Inner>"* %5 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN4sync6atomic5fence20hfb767f14e632fab6sdLE(i8) unnamed_addr #1 { | |
entry-block: | |
%order = alloca i8 | |
store i8 %0, i8* %order, align 1 | |
%1 = load i8, i8* %order, !range !3 | |
switch i8 %1, label %match_else [ | |
i8 2, label %match_case | |
i8 1, label %match_case5 | |
i8 3, label %match_case6 | |
i8 4, label %match_case7 | |
i8 0, label %match_case8 | |
] | |
case_body: ; preds = %match_case | |
fence acquire | |
br label %join | |
case_body1: ; preds = %match_case5 | |
fence release | |
br label %join | |
case_body2: ; preds = %match_case6 | |
fence acq_rel | |
br label %join | |
case_body3: ; preds = %match_case7 | |
fence seq_cst | |
br label %join | |
case_body4: ; preds = %match_case8 | |
call void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @_ZN4sync6atomic5fence14_MSG_FILE_LINE20h9e0bce6065acf43cSdLE) | |
unreachable | |
match_else: ; preds = %entry-block | |
unreachable | |
match_case: ; preds = %entry-block | |
br label %case_body | |
match_case5: ; preds = %entry-block | |
br label %case_body1 | |
match_case6: ; preds = %entry-block | |
br label %case_body2 | |
match_case7: ; preds = %entry-block | |
br label %case_body3 | |
match_case8: ; preds = %entry-block | |
br label %case_body4 | |
join: ; preds = %case_body3, %case_body2, %case_body1, %case_body | |
ret void | |
} | |
; Function Attrs: cold noinline noreturn | |
declare void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40)) unnamed_addr #4 | |
; Function Attrs: noinline uwtable | |
define internal void @"_ZN3arc12Arc$LT$T$GT$9drop_slow21h15247882626422542327E"(%"5.alloc::arc::Arc<std::thread::Inner>"* dereferenceable(8)) unnamed_addr #5 { | |
entry-block: | |
%self = alloca %"5.alloc::arc::Arc<std::thread::Inner>"* | |
%ptr = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"* | |
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"** | |
%1 = alloca i64 | |
%2 = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"* | |
%auto_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"* | |
%3 = bitcast %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref to i8* | |
call void @llvm.memset.p0i8.i64(i8* %3, i8 29, i64 8, i32 8, i1 false) | |
%4 = alloca i64 | |
%5 = alloca i64 | |
store %"5.alloc::arc::Arc<std::thread::Inner>"* %0, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8 | |
%6 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1 | |
%7 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %6, i32 0, i32 0 | |
%8 = call dereferenceable(8) %"5.alloc::arc::ArcInner<std::thread::Inner>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref20h4935991149217615470E"(%"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* noalias readonly dereferenceable(8) %7) | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"** %8, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8 | |
%9 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"**, %"5.alloc::arc::ArcInner<std::thread::Inner>"*** %overloaded_deref, align 8, !nonnull !1 | |
%10 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %9, align 8 | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %10, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %ptr, align 8 | |
%11 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %ptr, align 8 | |
%12 = getelementptr inbounds %"5.alloc::arc::ArcInner<std::thread::Inner>", %"5.alloc::arc::ArcInner<std::thread::Inner>"* %11, i32 0, i32 2 | |
call void @_ZN18std..thread..Inner9drop.430317hba9f32f35085d175E(%"1.std::thread::Inner"* %12) | |
%13 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1 | |
%14 = call dereferenceable(72) %"5.alloc::arc::ArcInner<std::thread::Inner>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h18010354011718457137E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8) %13) | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %14, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %2, align 8 | |
%15 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %2, align 8, !nonnull !1 | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %15, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8 | |
%16 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8, !nonnull !1 | |
%17 = getelementptr inbounds %"5.alloc::arc::ArcInner<std::thread::Inner>", %"5.alloc::arc::ArcInner<std::thread::Inner>"* %16, i32 0, i32 1 | |
%18 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_sub20h8772de3cc84a5649T1KE(%"2.core::sync::atomic::AtomicUsize"* dereferenceable(8) %17, i64 1, i8 1) | |
store i64 %18, i64* %1, align 8 | |
%19 = load i64, i64* %1, align 8 | |
%20 = icmp eq i64 %19, 1 | |
br i1 %20, label %then-block-502-, label %next-block | |
then-block-502-: ; preds = %entry-block | |
call void @_ZN4sync6atomic5fence20hfb767f14e632fab6sdLE(i8 2) | |
%21 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %ptr, align 8 | |
%22 = bitcast %"5.alloc::arc::ArcInner<std::thread::Inner>"* %21 to i8* | |
%23 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %ptr, align 8 | |
%24 = call i64 @_ZN3mem11size_of_val21h13591634141023046622E(%"5.alloc::arc::ArcInner<std::thread::Inner>"* dereferenceable(72) %23) | |
store i64 %24, i64* %4, align 8 | |
%25 = load i64, i64* %4, align 8 | |
%26 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %ptr, align 8 | |
%27 = call i64 @_ZN3mem12align_of_val20h2104549912459974077E(%"5.alloc::arc::ArcInner<std::thread::Inner>"* dereferenceable(72) %26) | |
store i64 %27, i64* %5, align 8 | |
%28 = load i64, i64* %5, align 8 | |
call void @_ZN4heap10deallocate20hb6b00bc54f0213287eaE(i8* %22, i64 %25, i64 %28) | |
br label %next-block | |
next-block: ; preds = %entry-block, %then-block-502- | |
ret void | |
} | |
define internal void @_ZN18std..thread..Inner9drop.430317hba9f32f35085d175E(%"1.std::thread::Inner"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"1.std::thread::Inner", %"1.std::thread::Inner"* %0, i32 0, i32 0 | |
call void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.430617h195c25966ed6cdf5E"(%"2.core::option::Option<collections::string::String>"* %1) | |
%2 = getelementptr inbounds %"1.std::thread::Inner", %"1.std::thread::Inner"* %0, i32 0, i32 1 | |
call void @"_ZN35std..sync..mutex..Mutex$LT$bool$GT$9drop.452417h821807e8076fc6d3E"(%"1.std::sync::mutex::Mutex<bool>"* %2) | |
%3 = getelementptr inbounds %"1.std::thread::Inner", %"1.std::thread::Inner"* %0, i32 0, i32 2 | |
call void @_ZN27std..sync..condvar..Condvar9drop.454217he542d37ffa77616cE(%"1.std::sync::condvar::Condvar"* %3) | |
ret void | |
} | |
define internal void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.430617h195c25966ed6cdf5E"(%"2.core::option::Option<collections::string::String>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"2.core::option::Option<collections::string::String>", %"2.core::option::Option<collections::string::String>"* %0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0 | |
%2 = load i8*, i8** %1 | |
%3 = icmp ne i8* %2, null | |
switch i1 %3, label %enum-iter-ret-void [ | |
i1 false, label %enum-iter-variant-0 | |
i1 true, label %enum-iter-variant-1 | |
] | |
enum-iter-ret-void: ; preds = %entry-block | |
ret void | |
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0 | |
ret void | |
enum-iter-variant-0: ; preds = %entry-block | |
br label %enum-iter-next | |
enum-iter-variant-1: ; preds = %entry-block | |
%4 = getelementptr inbounds %"2.core::option::Option<collections::string::String>", %"2.core::option::Option<collections::string::String>"* %0, i32 0, i32 0 | |
call void @_ZN27collections..string..String9drop.430917ha3a1e7547d2bbcd1E(%"3.collections::string::String"* %4) | |
br label %enum-iter-next | |
} | |
define internal void @_ZN27collections..string..String9drop.430917ha3a1e7547d2bbcd1E(%"3.collections::string::String"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"3.collections::string::String", %"3.collections::string::String"* %0, i32 0, i32 0 | |
call void @"_ZN31collections..vec..Vec$LT$u8$GT$9drop.431217hdb14b237572c1b0aE"(%"3.collections::vec::Vec<u8>"* %1) | |
ret void | |
} | |
define internal void @"_ZN31collections..vec..Vec$LT$u8$GT$9drop.431217hdb14b237572c1b0aE"(%"3.collections::vec::Vec<u8>"*) unnamed_addr personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%1 = alloca { i8*, i32 } | |
invoke void @"_ZN3vec17Vec$LT$T$GT$.Drop4drop20h4234986325229876764E"(%"3.collections::vec::Vec<u8>"* dereferenceable(24) %0) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %entry-block | |
call void @"_ZN31collections..vec..Vec$LT$u8$GT$9drop.449917hdb14b237572c1b0aE"(%"3.collections::vec::Vec<u8>"* %0) | |
ret void | |
unwind_custom_: ; preds = %entry-block | |
%2 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %2, { i8*, i32 }* %1 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%3 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %3 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN31collections..vec..Vec$LT$u8$GT$9drop.449917hdb14b237572c1b0aE"(%"3.collections::vec::Vec<u8>"* %0) | |
br label %resume | |
} | |
; Function Attrs: uwtable | |
define internal void @"_ZN3vec17Vec$LT$T$GT$.Drop4drop20h4234986325229876764E"(%"3.collections::vec::Vec<u8>"* dereferenceable(24)) unnamed_addr #0 { | |
entry-block: | |
%self = alloca %"3.collections::vec::Vec<u8>"* | |
%1 = alloca i8 | |
%2 = alloca i8 | |
%_result = alloca {} | |
%3 = alloca %"2.core::slice::IterMut<u8>" | |
%4 = alloca %"2.core::slice::IterMut<u8>" | |
%overloaded_deref = alloca { i8*, i64 } | |
%iter = alloca %"2.core::slice::IterMut<u8>"* | |
%5 = alloca i8* | |
%match = alloca i8* | |
%6 = bitcast i8** %match to i8* | |
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 8, i32 8, i1 false) | |
%x = alloca i8** | |
store %"3.collections::vec::Vec<u8>"* %0, %"3.collections::vec::Vec<u8>"** %self, align 8 | |
%7 = load %"3.collections::vec::Vec<u8>"*, %"3.collections::vec::Vec<u8>"** %self, align 8, !nonnull !1 | |
%8 = getelementptr inbounds %"3.collections::vec::Vec<u8>", %"3.collections::vec::Vec<u8>"* %7, i32 0, i32 0 | |
%9 = call zeroext i1 @"_ZN7raw_vec15RawVec$LT$T$GT$30unsafe_no_drop_flag_needs_drop20h1568282680993329028E"(%"5.alloc::raw_vec::RawVec<u8>"* noalias readonly dereferenceable(16) %8) | |
%10 = zext i1 %9 to i8 | |
store i8 %10, i8* %1, align 1 | |
%11 = load i8, i8* %1, align 1, !range !0 | |
%12 = trunc i8 %11 to i1 | |
br i1 %12, label %then-block-542-, label %next-block5 | |
then-block-542-: ; preds = %entry-block | |
store i8 0, i8* %2, align 1 | |
%13 = load i8, i8* %2, align 1, !range !0 | |
%14 = trunc i8 %13 to i1 | |
br i1 %14, label %then-block-549-, label %next-block | |
then-block-549-: ; preds = %then-block-542- | |
%15 = load %"3.collections::vec::Vec<u8>"*, %"3.collections::vec::Vec<u8>"** %self, align 8, !nonnull !1 | |
%16 = call { i8*, i64 } @"_ZN3vec26Vec$LT$T$GT$.ops..DerefMut9deref_mut20h7319036391409328039E"(%"3.collections::vec::Vec<u8>"* dereferenceable(24) %15) | |
%17 = extractvalue { i8*, i64 } %16, 0 | |
%18 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %overloaded_deref, i32 0, i32 0 | |
store i8* %17, i8** %18 | |
%19 = extractvalue { i8*, i64 } %16, 1 | |
%20 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %overloaded_deref, i32 0, i32 1 | |
store i64 %19, i64* %20 | |
%21 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %overloaded_deref, i32 0, i32 0 | |
%22 = load i8*, i8** %21 | |
%23 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %overloaded_deref, i32 0, i32 1 | |
%24 = load i64, i64* %23 | |
call void @"_ZN5slice12_$u5b$T$u5d$8iter_mut20h9918793280051803892E"(%"2.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16) %4, i8* nonnull %22, i64 %24) | |
call void @_ZN4iter14I.IntoIterator9into_iter21h16446865773372775343E(%"2.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16) %3, %"2.core::slice::IterMut<u8>"* noalias nocapture dereferenceable(16) %4) | |
store %"2.core::slice::IterMut<u8>"* %3, %"2.core::slice::IterMut<u8>"** %iter | |
br label %case_body | |
case_body: ; preds = %then-block-549- | |
%25 = load %"2.core::slice::IterMut<u8>"*, %"2.core::slice::IterMut<u8>"** %iter | |
br label %loop_body | |
loop_exit: ; preds = %clean_ast_8178_ | |
br label %join4 | |
loop_body: ; preds = %join, %case_body | |
%26 = call i8* @"_ZN5slice39IterMut$LT$$u27$a$C$$u20$T$GT$.Iterator4next21h17389304392997668194E"(%"2.core::slice::IterMut<u8>"* dereferenceable(16) %25) | |
store i8* %26, i8** %5, align 8 | |
%27 = load i8*, i8** %5, align 8 | |
store i8* %27, i8** %match, align 8 | |
%28 = load i8*, i8** %match | |
%29 = icmp ne i8* %28, null | |
switch i1 %29, label %match_else [ | |
i1 true, label %match_case | |
i1 false, label %match_case3 | |
] | |
case_body1: ; preds = %match_case | |
%30 = load i8**, i8*** %x | |
%31 = load i8*, i8** %30, align 8, !nonnull !1 | |
br label %join | |
case_body2: ; preds = %match_case3 | |
br label %clean_ast_8178_ | |
match_else: ; preds = %loop_body | |
unreachable | |
match_case: ; preds = %loop_body | |
store i8** %match, i8*** %x | |
br label %case_body1 | |
match_case3: ; preds = %loop_body | |
br label %case_body2 | |
clean_ast_8178_: ; preds = %case_body2 | |
br label %loop_exit | |
join: ; preds = %case_body1 | |
br label %loop_body | |
join4: ; preds = %loop_exit | |
br label %next-block | |
next-block: ; preds = %then-block-542-, %join4 | |
br label %next-block5 | |
next-block5: ; preds = %entry-block, %next-block | |
ret void | |
} | |
; Function Attrs: uwtable | |
define internal zeroext i1 @"_ZN7raw_vec15RawVec$LT$T$GT$30unsafe_no_drop_flag_needs_drop20h1568282680993329028E"(%"5.alloc::raw_vec::RawVec<u8>"* noalias readonly dereferenceable(16)) unnamed_addr #0 { | |
entry-block: | |
%self = alloca %"5.alloc::raw_vec::RawVec<u8>"* | |
store %"5.alloc::raw_vec::RawVec<u8>"* %0, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8 | |
%1 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %1, i32 0, i32 1 | |
%3 = load i64, i64* %2, align 8 | |
%4 = icmp ne i64 %3, 2097865012304223517 | |
%5 = zext i1 %4 to i8 | |
%6 = trunc i8 %5 to i1 | |
ret i1 %6 | |
} | |
; Function Attrs: uwtable | |
define internal void @_ZN4iter14I.IntoIterator9into_iter21h16446865773372775343E(%"2.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16), %"2.core::slice::IterMut<u8>"* noalias nocapture dereferenceable(16) %self) unnamed_addr #0 { | |
entry-block: | |
%1 = bitcast %"2.core::slice::IterMut<u8>"* %self to i8* | |
%2 = bitcast %"2.core::slice::IterMut<u8>"* %0 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %2, i8* %1, i64 16, i32 8, i1 false) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN5slice12_$u5b$T$u5d$8iter_mut20h9918793280051803892E"(%"2.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16), i8* nonnull, i64) unnamed_addr #1 { | |
entry-block: | |
%self = alloca { i8*, i64 } | |
%3 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
store i8* %1, i8** %3 | |
%4 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
store i64 %2, i64* %4 | |
%5 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
%6 = load i8*, i8** %5 | |
%7 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
%8 = load i64, i64* %7 | |
call void @"_ZN5slice21_$u5b$T$u5d$.SliceExt8iter_mut20h1050215043254540792E"(%"2.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16) %0, i8* nonnull %6, i64 %8) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN5slice21_$u5b$T$u5d$.SliceExt8iter_mut20h1050215043254540792E"(%"2.core::slice::IterMut<u8>"* noalias nocapture sret dereferenceable(16), i8* nonnull, i64) unnamed_addr #1 { | |
entry-block: | |
%3 = alloca i8* | |
%self = alloca { i8*, i64 } | |
%p = alloca i8* | |
%4 = alloca i64 | |
%p1 = alloca i8* | |
%5 = alloca i8 | |
%ptr = alloca i8* | |
%6 = alloca i64 | |
%7 = alloca i8* | |
%8 = alloca i64 | |
%9 = alloca i64 | |
%10 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
store i8* %1, i8** %10 | |
%11 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
store i64 %2, i64* %11 | |
%12 = call i64 @_ZN3mem7size_of20h7004008083259366209E() | |
store i64 %12, i64* %4, align 8 | |
%13 = load i64, i64* %4, align 8 | |
%14 = icmp eq i64 %13, 0 | |
br i1 %14, label %then-block-8247-, label %else-block | |
then-block-8247-: ; preds = %entry-block | |
store i8* inttoptr (i64 1 to i8*), i8** %p, align 8 | |
br label %join | |
else-block: ; preds = %entry-block | |
%15 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
%16 = load i8*, i8** %15 | |
%17 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
%18 = load i64, i64* %17 | |
%19 = call i8* @"_ZN5slice21_$u5b$T$u5d$.SliceExt10as_mut_ptr21h12411256252346874271E"(i8* nonnull %16, i64 %18) | |
store i8* %19, i8** %p1, align 8 | |
%20 = load i8*, i8** %p1, align 8 | |
%21 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null20h8484224088030641506E"(i8* %20) | |
%22 = zext i1 %21 to i8 | |
store i8 %22, i8* %5, align 1 | |
%23 = load i8, i8* %5, align 1, !range !0 | |
%24 = trunc i8 %23 to i1 | |
%25 = xor i1 %24, true | |
call void @llvm.assume(i1 %25) | |
%26 = load i8*, i8** %p1, align 8 | |
store i8* %26, i8** %p, align 8 | |
br label %join | |
join: ; preds = %else-block, %then-block-8247- | |
%27 = getelementptr inbounds %"2.core::slice::IterMut<u8>", %"2.core::slice::IterMut<u8>"* %0, i32 0, i32 0 | |
%28 = load i8*, i8** %p, align 8 | |
store i8* %28, i8** %27, align 8 | |
%29 = getelementptr inbounds %"2.core::slice::IterMut<u8>", %"2.core::slice::IterMut<u8>"* %0, i32 0, i32 1 | |
%30 = load i8*, i8** %p, align 8 | |
store i8* %30, i8** %ptr, align 8 | |
%31 = load i8*, i8** %ptr, align 8 | |
store i8* %31, i8** %3, align 8 | |
%32 = call i64 @_ZN3mem7size_of20h7004008083259366209E() | |
store i64 %32, i64* %6, align 8 | |
%33 = load i64, i64* %6, align 8 | |
%34 = icmp eq i64 %33, 0 | |
br i1 %34, label %then-block-8280-, label %else-block2 | |
then-block-8280-: ; preds = %join | |
%35 = load i8*, i8** %ptr, align 8 | |
%36 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
%37 = load i8*, i8** %36 | |
%38 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
%39 = load i64, i64* %38 | |
%40 = call i64 @"_ZN5slice21_$u5b$T$u5d$.SliceExt3len20h7713958268424903689E"(i8* noalias nonnull readonly %37, i64 %39) | |
store i64 %40, i64* %8, align 8 | |
%41 = load i64, i64* %8, align 8 | |
%42 = getelementptr i8, i8* %35, i64 %41 | |
store i8* %42, i8** %7, align 8 | |
%43 = load i8*, i8** %7, align 8 | |
store i8* %43, i8** %29, align 8 | |
br label %join3 | |
else-block2: ; preds = %join | |
%44 = load i8*, i8** %ptr, align 8 | |
%45 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
%46 = load i8*, i8** %45 | |
%47 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
%48 = load i64, i64* %47 | |
%49 = call i64 @"_ZN5slice21_$u5b$T$u5d$.SliceExt3len20h7713958268424903689E"(i8* noalias nonnull readonly %46, i64 %48) | |
store i64 %49, i64* %9, align 8 | |
%50 = load i64, i64* %9, align 8 | |
%51 = call i8* @"_ZN3ptr14_$BP$mut$u20$T6offset20h9473110157605444283E"(i8* %44, i64 %50) | |
store i8* %51, i8** %29, align 8 | |
br label %join3 | |
join3: ; preds = %else-block2, %then-block-8280- | |
%52 = getelementptr inbounds %"2.core::slice::IterMut<u8>", %"2.core::slice::IterMut<u8>"* %0, i32 0, i32 2 | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN3mem7size_of20h7004008083259366209E() unnamed_addr #1 { | |
entry-block: | |
ret i64 1 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i8* @"_ZN5slice21_$u5b$T$u5d$.SliceExt10as_mut_ptr21h12411256252346874271E"(i8* nonnull, i64) unnamed_addr #1 { | |
entry-block: | |
%self = alloca { i8*, i64 } | |
%2 = alloca %"2.core::raw::Slice<u8>" | |
%3 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
store i8* %0, i8** %3 | |
%4 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
store i64 %1, i64* %4 | |
%5 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
%6 = load i8*, i8** %5 | |
%7 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
%8 = load i64, i64* %7 | |
call void @_ZN3raw4Repr4repr21h14878316445816042776E(%"2.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16) %2, i8* noalias nonnull readonly %6, i64 %8) | |
%9 = getelementptr inbounds %"2.core::raw::Slice<u8>", %"2.core::raw::Slice<u8>"* %2, i32 0, i32 0 | |
%10 = load i8*, i8** %9, align 8 | |
ret i8* %10 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3raw4Repr4repr21h14878316445816042776E(%"2.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16), i8* noalias nonnull readonly, i64) unnamed_addr #1 { | |
entry-block: | |
%self = alloca { i8*, i64 } | |
%3 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
store i8* %1, i8** %3 | |
%4 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
store i64 %2, i64* %4 | |
call void @_ZN3mem14transmute_copy21h13690883680428017960E(%"2.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16) %0, { i8*, i64 }* noalias readonly dereferenceable(16) %self) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3mem14transmute_copy21h13690883680428017960E(%"2.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16), { i8*, i64 }* noalias readonly dereferenceable(16)) unnamed_addr #1 { | |
entry-block: | |
%src.i = alloca %"2.core::raw::Slice<u8>"* | |
%tmp.i = alloca %"2.core::raw::Slice<u8>" | |
%src = alloca { i8*, i64 }* | |
store { i8*, i64 }* %1, { i8*, i64 }** %src, align 8 | |
%2 = load { i8*, i64 }*, { i8*, i64 }** %src, align 8 | |
%3 = bitcast { i8*, i64 }* %2 to %"2.core::raw::Slice<u8>"* | |
store %"2.core::raw::Slice<u8>"* %3, %"2.core::raw::Slice<u8>"** %src.i, align 8, !noalias !4 | |
call void @_ZN3mem13uninitialized21h16189629033497044643E(%"2.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16) %tmp.i), !noalias !4 | |
%4 = load %"2.core::raw::Slice<u8>"*, %"2.core::raw::Slice<u8>"** %src.i, align 8, !noalias !4 | |
%5 = bitcast %"2.core::raw::Slice<u8>"* %tmp.i to i8* | |
%6 = bitcast %"2.core::raw::Slice<u8>"* %4 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %6, i64 16, i32 8, i1 false), !noalias !4 | |
%7 = bitcast %"2.core::raw::Slice<u8>"* %tmp.i to i8* | |
%8 = bitcast %"2.core::raw::Slice<u8>"* %0 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %8, i8* %7, i64 16, i32 8, i1 false) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3mem13uninitialized21h16189629033497044643E(%"2.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16)) unnamed_addr #1 { | |
entry-block: | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null20h8484224088030641506E"(i8*) unnamed_addr #1 { | |
entry-block: | |
%self = alloca i8* | |
store i8* %0, i8** %self, align 8 | |
%1 = load i8*, i8** %self, align 8 | |
%2 = icmp eq i8* %1, null | |
%3 = zext i1 %2 to i8 | |
%4 = trunc i8 %3 to i1 | |
ret i1 %4 | |
} | |
; Function Attrs: nounwind | |
declare void @llvm.assume(i1) #3 | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @"_ZN5slice21_$u5b$T$u5d$.SliceExt3len20h7713958268424903689E"(i8* noalias nonnull readonly, i64) unnamed_addr #1 { | |
entry-block: | |
%self = alloca { i8*, i64 } | |
%2 = alloca %"2.core::raw::Slice<u8>" | |
%3 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
store i8* %0, i8** %3 | |
%4 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
store i64 %1, i64* %4 | |
%5 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 0 | |
%6 = load i8*, i8** %5 | |
%7 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %self, i32 0, i32 1 | |
%8 = load i64, i64* %7 | |
call void @_ZN3raw4Repr4repr21h14878316445816042776E(%"2.core::raw::Slice<u8>"* noalias nocapture sret dereferenceable(16) %2, i8* noalias nonnull readonly %6, i64 %8) | |
%9 = getelementptr inbounds %"2.core::raw::Slice<u8>", %"2.core::raw::Slice<u8>"* %2, i32 0, i32 1 | |
%10 = load i64, i64* %9, align 8 | |
ret i64 %10 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i8* @"_ZN3ptr14_$BP$mut$u20$T6offset20h9473110157605444283E"(i8*, i64) unnamed_addr #1 { | |
entry-block: | |
%self = alloca i8* | |
%count = alloca i64 | |
%2 = alloca i8* | |
store i8* %0, i8** %self, align 8 | |
store i64 %1, i64* %count, align 8 | |
%3 = load i8*, i8** %self, align 8 | |
%4 = load i64, i64* %count, align 8 | |
%5 = getelementptr inbounds i8, i8* %3, i64 %4 | |
store i8* %5, i8** %2, align 8 | |
%6 = load i8*, i8** %2, align 8 | |
ret i8* %6 | |
} | |
; Function Attrs: uwtable | |
define internal { i8*, i64 } @"_ZN3vec26Vec$LT$T$GT$.ops..DerefMut9deref_mut20h7319036391409328039E"(%"3.collections::vec::Vec<u8>"* dereferenceable(24)) unnamed_addr #0 { | |
entry-block: | |
%sret_slot = alloca { i8*, i64 } | |
%self = alloca %"3.collections::vec::Vec<u8>"* | |
%ptr = alloca i8* | |
%1 = alloca i8 | |
store %"3.collections::vec::Vec<u8>"* %0, %"3.collections::vec::Vec<u8>"** %self, align 8 | |
%2 = load %"3.collections::vec::Vec<u8>"*, %"3.collections::vec::Vec<u8>"** %self, align 8, !nonnull !1 | |
%3 = getelementptr inbounds %"3.collections::vec::Vec<u8>", %"3.collections::vec::Vec<u8>"* %2, i32 0, i32 0 | |
%4 = call i8* @"_ZN7raw_vec15RawVec$LT$T$GT$3ptr20h4769830990728194068E"(%"5.alloc::raw_vec::RawVec<u8>"* noalias readonly dereferenceable(16) %3) | |
store i8* %4, i8** %ptr, align 8 | |
%5 = load i8*, i8** %ptr, align 8 | |
%6 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null20h8484224088030641506E"(i8* %5) | |
%7 = zext i1 %6 to i8 | |
store i8 %7, i8* %1, align 1 | |
%8 = load i8, i8* %1, align 1, !range !0 | |
%9 = trunc i8 %8 to i1 | |
%10 = xor i1 %9, true | |
call void @llvm.assume(i1 %10) | |
%11 = load i8*, i8** %ptr, align 8 | |
%12 = load %"3.collections::vec::Vec<u8>"*, %"3.collections::vec::Vec<u8>"** %self, align 8, !nonnull !1 | |
%13 = getelementptr inbounds %"3.collections::vec::Vec<u8>", %"3.collections::vec::Vec<u8>"* %12, i32 0, i32 1 | |
%14 = load i64, i64* %13, align 8 | |
%15 = call { i8*, i64 } @_ZN5slice18from_raw_parts_mut21h12842255859049921022E(i8* %11, i64 %14) | |
%16 = extractvalue { i8*, i64 } %15, 0 | |
%17 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %sret_slot, i32 0, i32 0 | |
store i8* %16, i8** %17 | |
%18 = extractvalue { i8*, i64 } %15, 1 | |
%19 = getelementptr inbounds { i8*, i64 }, { i8*, i64 }* %sret_slot, i32 0, i32 1 | |
store i64 %18, i64* %19 | |
%20 = load { i8*, i64 }, { i8*, i64 }* %sret_slot, align 8 | |
ret { i8*, i64 } %20 | |
} | |
; Function Attrs: uwtable | |
define internal i8* @"_ZN7raw_vec15RawVec$LT$T$GT$3ptr20h4769830990728194068E"(%"5.alloc::raw_vec::RawVec<u8>"* noalias readonly dereferenceable(16)) unnamed_addr #0 { | |
entry-block: | |
%self = alloca %"5.alloc::raw_vec::RawVec<u8>"* | |
%overloaded_deref = alloca i8** | |
store %"5.alloc::raw_vec::RawVec<u8>"* %0, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8 | |
%1 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %1, i32 0, i32 0 | |
%3 = call dereferenceable(8) i8** @"_ZN3ptr21Unique$LT$T$GT$.Deref5deref21h13441479279314934585E"(%"2.core::ptr::Unique<u8>"* noalias readonly dereferenceable(8) %2) | |
store i8** %3, i8*** %overloaded_deref, align 8 | |
%4 = load i8**, i8*** %overloaded_deref, align 8, !nonnull !1 | |
%5 = load i8*, i8** %4, align 8 | |
ret i8* %5 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal dereferenceable(8) i8** @"_ZN3ptr21Unique$LT$T$GT$.Deref5deref21h13441479279314934585E"(%"2.core::ptr::Unique<u8>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"2.core::ptr::Unique<u8>"* | |
%overloaded_deref = alloca i8** | |
store %"2.core::ptr::Unique<u8>"* %0, %"2.core::ptr::Unique<u8>"** %self, align 8 | |
%1 = load %"2.core::ptr::Unique<u8>"*, %"2.core::ptr::Unique<u8>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"2.core::ptr::Unique<u8>", %"2.core::ptr::Unique<u8>"* %1, i32 0, i32 0 | |
%3 = call dereferenceable(8) i8** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref21h15901083502204048188E"(%"2.core::nonzero::NonZero<*const u8>"* noalias readonly dereferenceable(8) %2) | |
store i8** %3, i8*** %overloaded_deref, align 8 | |
%4 = load i8**, i8*** %overloaded_deref, align 8, !nonnull !1 | |
ret i8** %4 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal dereferenceable(8) i8** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref21h15901083502204048188E"(%"2.core::nonzero::NonZero<*const u8>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"2.core::nonzero::NonZero<*const u8>"* | |
%inner = alloca i8** | |
store %"2.core::nonzero::NonZero<*const u8>"* %0, %"2.core::nonzero::NonZero<*const u8>"** %self, align 8 | |
%1 = load %"2.core::nonzero::NonZero<*const u8>"*, %"2.core::nonzero::NonZero<*const u8>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"2.core::nonzero::NonZero<*const u8>", %"2.core::nonzero::NonZero<*const u8>"* %1, i32 0, i32 0 | |
store i8** %2, i8*** %inner | |
%3 = load i8**, i8*** %inner, align 8, !nonnull !1 | |
ret i8** %3 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal { i8*, i64 } @_ZN5slice18from_raw_parts_mut21h12842255859049921022E(i8*, i64) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca { i8*, i64 } | |
%p = alloca i8* | |
%len = alloca i64 | |
store i8* %0, i8** %p, align 8 | |
store i64 %1, i64* %len, align 8 | |
%2 = bitcast { i8*, i64 }* %sret_slot to %"2.core::raw::Slice<u8>"* | |
%3 = getelementptr inbounds %"2.core::raw::Slice<u8>", %"2.core::raw::Slice<u8>"* %2, i32 0, i32 0 | |
%4 = load i8*, i8** %p, align 8 | |
store i8* %4, i8** %3, align 8 | |
%5 = getelementptr inbounds %"2.core::raw::Slice<u8>", %"2.core::raw::Slice<u8>"* %2, i32 0, i32 1 | |
%6 = load i64, i64* %len, align 8 | |
store i64 %6, i64* %5, align 8 | |
%7 = load { i8*, i64 }, { i8*, i64 }* %sret_slot, align 8 | |
ret { i8*, i64 } %7 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i8* @"_ZN5slice39IterMut$LT$$u27$a$C$$u20$T$GT$.Iterator4next21h17389304392997668194E"(%"2.core::slice::IterMut<u8>"* dereferenceable(16)) unnamed_addr #1 { | |
entry-block: | |
%1 = alloca i8* | |
%2 = alloca i8* | |
%sret_slot = alloca i8* | |
%self = alloca %"2.core::slice::IterMut<u8>"* | |
%3 = alloca i64 | |
%4 = alloca i8 | |
%5 = alloca i8 | |
%old = alloca i8* | |
%6 = alloca i8* | |
%ptr = alloca i8* | |
%7 = alloca i64 | |
%8 = alloca i8* | |
%ptr2 = alloca i8* | |
%9 = alloca i64 | |
store %"2.core::slice::IterMut<u8>"* %0, %"2.core::slice::IterMut<u8>"** %self, align 8 | |
%10 = call i64 @_ZN3mem7size_of20h7004008083259366209E() | |
store i64 %10, i64* %3, align 8 | |
%11 = load i64, i64* %3, align 8 | |
%12 = icmp ne i64 %11, 0 | |
br i1 %12, label %then-block-8617-, label %next-block | |
then-block-8617-: ; preds = %entry-block | |
%13 = load %"2.core::slice::IterMut<u8>"*, %"2.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1 | |
%14 = getelementptr inbounds %"2.core::slice::IterMut<u8>", %"2.core::slice::IterMut<u8>"* %13, i32 0, i32 0 | |
%15 = load i8*, i8** %14, align 8 | |
%16 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null20h8484224088030641506E"(i8* %15) | |
%17 = zext i1 %16 to i8 | |
store i8 %17, i8* %4, align 1 | |
%18 = load i8, i8* %4, align 1, !range !0 | |
%19 = trunc i8 %18 to i1 | |
%20 = xor i1 %19, true | |
call void @llvm.assume(i1 %20) | |
%21 = load %"2.core::slice::IterMut<u8>"*, %"2.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1 | |
%22 = getelementptr inbounds %"2.core::slice::IterMut<u8>", %"2.core::slice::IterMut<u8>"* %21, i32 0, i32 1 | |
%23 = load i8*, i8** %22, align 8 | |
%24 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null20h8484224088030641506E"(i8* %23) | |
%25 = zext i1 %24 to i8 | |
store i8 %25, i8* %5, align 1 | |
%26 = load i8, i8* %5, align 1, !range !0 | |
%27 = trunc i8 %26 to i1 | |
%28 = xor i1 %27, true | |
call void @llvm.assume(i1 %28) | |
br label %next-block | |
next-block: ; preds = %entry-block, %then-block-8617- | |
%29 = load %"2.core::slice::IterMut<u8>"*, %"2.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1 | |
%30 = getelementptr inbounds %"2.core::slice::IterMut<u8>", %"2.core::slice::IterMut<u8>"* %29, i32 0, i32 0 | |
%31 = load i8*, i8** %30, align 8 | |
%32 = load %"2.core::slice::IterMut<u8>"*, %"2.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1 | |
%33 = getelementptr inbounds %"2.core::slice::IterMut<u8>", %"2.core::slice::IterMut<u8>"* %32, i32 0, i32 1 | |
%34 = load i8*, i8** %33, align 8 | |
%35 = icmp eq i8* %31, %34 | |
br i1 %35, label %then-block-8638-, label %else-block | |
then-block-8638-: ; preds = %next-block | |
%36 = bitcast i8** %sret_slot to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %36, i8* bitcast (i8** @const4466 to i8*), i64 8, i32 8, i1 false) | |
br label %join5 | |
else-block: ; preds = %next-block | |
%37 = load %"2.core::slice::IterMut<u8>"*, %"2.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1 | |
%38 = getelementptr inbounds %"2.core::slice::IterMut<u8>", %"2.core::slice::IterMut<u8>"* %37, i32 0, i32 0 | |
%39 = load i8*, i8** %38, align 8 | |
store i8* %39, i8** %old, align 8 | |
%40 = load %"2.core::slice::IterMut<u8>"*, %"2.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1 | |
%41 = getelementptr inbounds %"2.core::slice::IterMut<u8>", %"2.core::slice::IterMut<u8>"* %40, i32 0, i32 0 | |
%42 = load i8*, i8** %41, align 8 | |
store i8* %42, i8** %ptr, align 8 | |
%43 = load i8*, i8** %ptr, align 8 | |
store i8* %43, i8** %2, align 8 | |
%44 = call i64 @_ZN3mem7size_of20h7004008083259366209E() | |
store i64 %44, i64* %7, align 8 | |
%45 = load i64, i64* %7, align 8 | |
%46 = icmp eq i64 %45, 0 | |
br i1 %46, label %then-block-8664-, label %else-block1 | |
then-block-8664-: ; preds = %else-block | |
%47 = load i8*, i8** %ptr, align 8 | |
%48 = getelementptr i8, i8* %47, i64 1 | |
store i8* %48, i8** %8, align 8 | |
%49 = load i8*, i8** %8, align 8 | |
store i8* %49, i8** %6, align 8 | |
br label %join | |
else-block1: ; preds = %else-block | |
%50 = load i8*, i8** %ptr, align 8 | |
%51 = call i8* @"_ZN3ptr14_$BP$mut$u20$T6offset20h9473110157605444283E"(i8* %50, i64 1) | |
store i8* %51, i8** %6, align 8 | |
br label %join | |
join: ; preds = %else-block1, %then-block-8664- | |
%52 = load i8*, i8** %6, align 8 | |
%53 = load %"2.core::slice::IterMut<u8>"*, %"2.core::slice::IterMut<u8>"** %self, align 8, !nonnull !1 | |
%54 = getelementptr inbounds %"2.core::slice::IterMut<u8>", %"2.core::slice::IterMut<u8>"* %53, i32 0, i32 0 | |
store i8* %52, i8** %54, align 8 | |
%55 = load i8*, i8** %old, align 8 | |
store i8* %55, i8** %ptr2, align 8 | |
%56 = load i8*, i8** %ptr2, align 8 | |
store i8* %56, i8** %1, align 8 | |
%57 = call i64 @_ZN3mem7size_of20h7004008083259366209E() | |
store i64 %57, i64* %9, align 8 | |
%58 = load i64, i64* %9, align 8 | |
%59 = icmp eq i64 %58, 0 | |
br i1 %59, label %then-block-8694-, label %else-block3 | |
then-block-8694-: ; preds = %join | |
store i8* inttoptr (i64 1 to i8*), i8** %sret_slot, align 8 | |
br label %join4 | |
else-block3: ; preds = %join | |
%60 = load i8*, i8** %ptr2, align 8 | |
store i8* %60, i8** %sret_slot | |
br label %join4 | |
join4: ; preds = %else-block3, %then-block-8694- | |
br label %join5 | |
join5: ; preds = %join4, %then-block-8638- | |
%61 = load i8*, i8** %sret_slot, align 8 | |
ret i8* %61 | |
} | |
define internal void @"_ZN31collections..vec..Vec$LT$u8$GT$9drop.449917hdb14b237572c1b0aE"(%"3.collections::vec::Vec<u8>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"3.collections::vec::Vec<u8>", %"3.collections::vec::Vec<u8>"* %0, i32 0, i32 0 | |
call void @"_ZN32alloc..raw_vec..RawVec$LT$u8$GT$9drop.450217h754be52ea55354abE"(%"5.alloc::raw_vec::RawVec<u8>"* %1) | |
%2 = getelementptr inbounds %"3.collections::vec::Vec<u8>", %"3.collections::vec::Vec<u8>"* %0, i32 0, i32 1 | |
ret void | |
} | |
define internal void @"_ZN32alloc..raw_vec..RawVec$LT$u8$GT$9drop.450217h754be52ea55354abE"(%"5.alloc::raw_vec::RawVec<u8>"*) unnamed_addr personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%1 = alloca { i8*, i32 } | |
invoke void @"_ZN7raw_vec20RawVec$LT$T$GT$.Drop4drop20h5439572633047560433E"(%"5.alloc::raw_vec::RawVec<u8>"* dereferenceable(16) %0) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %entry-block | |
call void @"_ZN32alloc..raw_vec..RawVec$LT$u8$GT$9drop.452117h754be52ea55354abE"(%"5.alloc::raw_vec::RawVec<u8>"* %0) | |
ret void | |
unwind_custom_: ; preds = %entry-block | |
%2 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %2, { i8*, i32 }* %1 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%3 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %3 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN32alloc..raw_vec..RawVec$LT$u8$GT$9drop.452117h754be52ea55354abE"(%"5.alloc::raw_vec::RawVec<u8>"* %0) | |
br label %resume | |
} | |
; Function Attrs: uwtable | |
define internal void @"_ZN7raw_vec20RawVec$LT$T$GT$.Drop4drop20h5439572633047560433E"(%"5.alloc::raw_vec::RawVec<u8>"* dereferenceable(16)) unnamed_addr #0 { | |
entry-block: | |
%self = alloca %"5.alloc::raw_vec::RawVec<u8>"* | |
%elem_size = alloca i64 | |
%1 = alloca i8 | |
%align = alloca i64 | |
%num_bytes = alloca i64 | |
%overloaded_deref = alloca i8** | |
store %"5.alloc::raw_vec::RawVec<u8>"* %0, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8 | |
%2 = call i64 @_ZN3mem7size_of20h7004008083259366209E() | |
store i64 %2, i64* %elem_size, align 8 | |
%3 = load i64, i64* %elem_size, align 8 | |
%4 = icmp ne i64 %3, 0 | |
br i1 %4, label %before_rhs, label %join | |
join: ; preds = %before_rhs, %entry-block | |
%5 = phi i1 [ %4, %entry-block ], [ %9, %before_rhs ] | |
br i1 %5, label %before_rhs2, label %join1 | |
before_rhs: ; preds = %entry-block | |
%6 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1 | |
%7 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %6, i32 0, i32 1 | |
%8 = load i64, i64* %7, align 8 | |
%9 = icmp ne i64 %8, 0 | |
br label %join | |
join1: ; preds = %before_rhs2, %join | |
%10 = phi i1 [ %5, %join ], [ %15, %before_rhs2 ] | |
br i1 %10, label %then-block-8732-, label %next-block | |
before_rhs2: ; preds = %join | |
%11 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1 | |
%12 = call zeroext i1 @"_ZN7raw_vec15RawVec$LT$T$GT$30unsafe_no_drop_flag_needs_drop20h1568282680993329028E"(%"5.alloc::raw_vec::RawVec<u8>"* noalias readonly dereferenceable(16) %11) | |
%13 = zext i1 %12 to i8 | |
store i8 %13, i8* %1, align 1 | |
%14 = load i8, i8* %1, align 1, !range !0 | |
%15 = trunc i8 %14 to i1 | |
br label %join1 | |
then-block-8732-: ; preds = %join1 | |
%16 = call i64 @_ZN3mem8align_of20h3537112508284874809E() | |
store i64 %16, i64* %align, align 8 | |
%17 = load i64, i64* %elem_size, align 8 | |
%18 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1 | |
%19 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %18, i32 0, i32 1 | |
%20 = load i64, i64* %19, align 8 | |
%21 = call { i64, i1 } @llvm.umul.with.overflow.i64(i64 %17, i64 %20) | |
%22 = extractvalue { i64, i1 } %21, 0 | |
%23 = extractvalue { i64, i1 } %21, 1 | |
%24 = icmp eq i1 %23, true | |
%25 = call i1 @llvm.expect.i1(i1 %24, i1 false) | |
br i1 %24, label %cond, label %next | |
next: ; preds = %then-block-8732- | |
store i64 %22, i64* %num_bytes, align 8 | |
%26 = load %"5.alloc::raw_vec::RawVec<u8>"*, %"5.alloc::raw_vec::RawVec<u8>"** %self, align 8, !nonnull !1 | |
%27 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %26, i32 0, i32 0 | |
%28 = call dereferenceable(8) i8** @"_ZN3ptr21Unique$LT$T$GT$.Deref5deref21h13441479279314934585E"(%"2.core::ptr::Unique<u8>"* noalias readonly dereferenceable(8) %27) | |
store i8** %28, i8*** %overloaded_deref, align 8 | |
%29 = load i8**, i8*** %overloaded_deref, align 8, !nonnull !1 | |
%30 = load i8*, i8** %29, align 8 | |
%31 = load i64, i64* %num_bytes, align 8 | |
%32 = load i64, i64* %align, align 8 | |
call void @_ZN4heap10deallocate20hb6b00bc54f0213287eaE(i8* %30, i64 %31, i64 %32) | |
br label %next-block | |
cond: ; preds = %then-block-8732- | |
call void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @panic_loc4514) | |
unreachable | |
next-block: ; preds = %join1, %next | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN3mem8align_of20h3537112508284874809E() unnamed_addr #1 { | |
entry-block: | |
ret i64 1 | |
} | |
; Function Attrs: nounwind readnone | |
declare { i64, i1 } @llvm.umul.with.overflow.i64(i64, i64) #6 | |
; Function Attrs: nounwind readnone | |
declare i1 @llvm.expect.i1(i1, i1) #6 | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN4heap10deallocate20hb6b00bc54f0213287eaE(i8*, i64, i64) unnamed_addr #1 { | |
entry-block: | |
%ptr = alloca i8* | |
%old_size = alloca i64 | |
%align = alloca i64 | |
%__arg = alloca i8* | |
%__arg1 = alloca i64 | |
%__arg2 = alloca i64 | |
store i8* %0, i8** %ptr, align 8 | |
store i64 %1, i64* %old_size, align 8 | |
store i64 %2, i64* %align, align 8 | |
%3 = load i8*, i8** %ptr, align 8 | |
%4 = load i64, i64* %old_size, align 8 | |
%5 = load i64, i64* %align, align 8 | |
store i8* %3, i8** %__arg, align 8 | |
%6 = load i8*, i8** %__arg | |
store i64 %4, i64* %__arg1, align 8 | |
%7 = load i64, i64* %__arg1 | |
store i64 %5, i64* %__arg2, align 8 | |
%8 = load i64, i64* %__arg2 | |
call void @__rust_deallocate(i8* %6, i64 %7, i64 %8) | |
ret void | |
} | |
; Function Attrs: nounwind | |
declare void @__rust_deallocate(i8*, i64, i64) unnamed_addr #3 | |
define internal void @"_ZN32alloc..raw_vec..RawVec$LT$u8$GT$9drop.452117h754be52ea55354abE"(%"5.alloc::raw_vec::RawVec<u8>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %0, i32 0, i32 0 | |
%2 = getelementptr inbounds %"5.alloc::raw_vec::RawVec<u8>", %"5.alloc::raw_vec::RawVec<u8>"* %0, i32 0, i32 1 | |
ret void | |
} | |
define internal void @"_ZN35std..sync..mutex..Mutex$LT$bool$GT$9drop.452417h821807e8076fc6d3E"(%"1.std::sync::mutex::Mutex<bool>"*) unnamed_addr personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%1 = alloca { i8*, i32 } | |
%2 = getelementptr inbounds %"1.std::sync::mutex::Mutex<bool>", %"1.std::sync::mutex::Mutex<bool>"* %0, i32 0, i32 2 | |
%3 = load i8, i8* %2, align 1 | |
%4 = icmp ne i8 %3, -44 | |
%5 = icmp ne i8 %3, 29 | |
%6 = and i1 %4, %5 | |
br i1 %6, label %cond, label %next | |
next: ; preds = %cond, %entry-block | |
%7 = icmp eq i8 %3, -44 | |
br i1 %7, label %cond2, label %next1 | |
cond: ; preds = %entry-block | |
call void @llvm.debugtrap() | |
br label %next | |
next1: ; preds = %normal-return, %next | |
ret void | |
cond2: ; preds = %next | |
invoke void @"_ZN4sync5mutex19Mutex$LT$T$GT$.Drop4drop21h16491459618485717911E"(%"1.std::sync::mutex::Mutex<bool>"* dereferenceable(16) %0) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %cond2 | |
call void @"_ZN35std..sync..mutex..Mutex$LT$bool$GT$9drop.453517h821807e8076fc6d3E"(%"1.std::sync::mutex::Mutex<bool>"* %0) | |
br label %next1 | |
unwind_custom_: ; preds = %cond2 | |
%8 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %8, { i8*, i32 }* %1 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%9 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %9 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN35std..sync..mutex..Mutex$LT$bool$GT$9drop.453517h821807e8076fc6d3E"(%"1.std::sync::mutex::Mutex<bool>"* %0) | |
br label %resume | |
} | |
; Function Attrs: uwtable | |
define internal void @"_ZN4sync5mutex19Mutex$LT$T$GT$.Drop4drop21h16491459618485717911E"(%"1.std::sync::mutex::Mutex<bool>"* dereferenceable(16)) unnamed_addr #0 { | |
entry-block: | |
%self = alloca %"1.std::sync::mutex::Mutex<bool>"* | |
store %"1.std::sync::mutex::Mutex<bool>"* %0, %"1.std::sync::mutex::Mutex<bool>"** %self, align 8 | |
%1 = load %"1.std::sync::mutex::Mutex<bool>"*, %"1.std::sync::mutex::Mutex<bool>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"1.std::sync::mutex::Mutex<bool>", %"1.std::sync::mutex::Mutex<bool>"* %1, i32 0, i32 0 | |
%3 = load %"1.std::sync::mutex::StaticMutex"*, %"1.std::sync::mutex::StaticMutex"** %2, align 8, !nonnull !1 | |
%4 = getelementptr inbounds %"1.std::sync::mutex::StaticMutex", %"1.std::sync::mutex::StaticMutex"* %3, i32 0, i32 0 | |
call void @_ZN10sys_common5mutex5Mutex7destroy20h6cb36dc1c99f94394lsE(%"1.std::sys_common::mutex::Mutex"* dereferenceable(40) %4) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN10sys_common5mutex5Mutex7destroy20h6cb36dc1c99f94394lsE(%"1.std::sys_common::mutex::Mutex"* dereferenceable(40)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"1.std::sys_common::mutex::Mutex"* | |
store %"1.std::sys_common::mutex::Mutex"* %0, %"1.std::sys_common::mutex::Mutex"** %self, align 8 | |
%1 = load %"1.std::sys_common::mutex::Mutex"*, %"1.std::sys_common::mutex::Mutex"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"1.std::sys_common::mutex::Mutex", %"1.std::sys_common::mutex::Mutex"* %1, i32 0, i32 0 | |
call void @_ZN3sys5mutex5Mutex7destroy20h6b43088835ab9eccnawE(%"1.std::sys::mutex::Mutex"* dereferenceable(40) %2) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3sys5mutex5Mutex7destroy20h6b43088835ab9eccnawE(%"1.std::sys::mutex::Mutex"* dereferenceable(40)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"1.std::sys::mutex::Mutex"* | |
%r = alloca i32 | |
%1 = alloca %"7.libc::unix::notbsd::linux::pthread_mutex_t"* | |
%__arg = alloca %"7.libc::unix::notbsd::linux::pthread_mutex_t"* | |
store %"1.std::sys::mutex::Mutex"* %0, %"1.std::sys::mutex::Mutex"** %self, align 8 | |
%2 = load %"1.std::sys::mutex::Mutex"*, %"1.std::sys::mutex::Mutex"** %self, align 8, !nonnull !1 | |
%3 = getelementptr inbounds %"1.std::sys::mutex::Mutex", %"1.std::sys::mutex::Mutex"* %2, i32 0, i32 0 | |
%4 = call %"7.libc::unix::notbsd::linux::pthread_mutex_t"* @"_ZN4cell19UnsafeCell$LT$T$GT$3get20h5704719013770969070E"(%"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"* dereferenceable(40) %3) | |
store %"7.libc::unix::notbsd::linux::pthread_mutex_t"* %4, %"7.libc::unix::notbsd::linux::pthread_mutex_t"** %1, align 8 | |
%5 = load %"7.libc::unix::notbsd::linux::pthread_mutex_t"*, %"7.libc::unix::notbsd::linux::pthread_mutex_t"** %1, align 8 | |
store %"7.libc::unix::notbsd::linux::pthread_mutex_t"* %5, %"7.libc::unix::notbsd::linux::pthread_mutex_t"** %__arg, align 8 | |
%6 = load %"7.libc::unix::notbsd::linux::pthread_mutex_t"*, %"7.libc::unix::notbsd::linux::pthread_mutex_t"** %__arg | |
%7 = call i32 @pthread_mutex_destroy(%"7.libc::unix::notbsd::linux::pthread_mutex_t"* %6) | |
store i32 %7, i32* %r, align 4 | |
ret void | |
} | |
; Function Attrs: nounwind | |
declare i32 @pthread_mutex_destroy(%"7.libc::unix::notbsd::linux::pthread_mutex_t"*) unnamed_addr #3 | |
; Function Attrs: inlinehint uwtable | |
define internal %"7.libc::unix::notbsd::linux::pthread_mutex_t"* @"_ZN4cell19UnsafeCell$LT$T$GT$3get20h5704719013770969070E"(%"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"* dereferenceable(40)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"* | |
store %"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"* %0, %"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"** %self, align 8 | |
%1 = load %"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"*, %"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>", %"2.core::cell::UnsafeCell<libc::unix::notbsd::linux::pthread_mutex_t>"* %1, i32 0, i32 0 | |
ret %"7.libc::unix::notbsd::linux::pthread_mutex_t"* %2 | |
} | |
define internal void @"_ZN35std..sync..mutex..Mutex$LT$bool$GT$9drop.453517h821807e8076fc6d3E"(%"1.std::sync::mutex::Mutex<bool>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"1.std::sync::mutex::Mutex<bool>", %"1.std::sync::mutex::Mutex<bool>"* %0, i32 0, i32 0 | |
call void @"_ZN40Box$LT$std..sync..mutex..StaticMutex$GT$9drop.453817h31f387d09541dfbfE"(%"1.std::sync::mutex::StaticMutex"** %1) | |
%2 = getelementptr inbounds %"1.std::sync::mutex::Mutex<bool>", %"1.std::sync::mutex::Mutex<bool>"* %0, i32 0, i32 1 | |
ret void | |
} | |
define internal void @"_ZN40Box$LT$std..sync..mutex..StaticMutex$GT$9drop.453817h31f387d09541dfbfE"(%"1.std::sync::mutex::StaticMutex"**) unnamed_addr { | |
entry-block: | |
%1 = load %"1.std::sync::mutex::StaticMutex"*, %"1.std::sync::mutex::StaticMutex"** %0 | |
%2 = ptrtoint %"1.std::sync::mutex::StaticMutex"* %1 to i64 | |
%3 = icmp ne i64 %2, 2097865012304223517 | |
br i1 %3, label %cond, label %next | |
next: ; preds = %cond, %entry-block | |
ret void | |
cond: ; preds = %entry-block | |
%4 = bitcast %"1.std::sync::mutex::StaticMutex"* %1 to i8* | |
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %4, i64 48, i64 8) | |
br label %next | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8*, i64, i64) unnamed_addr #1 { | |
entry-block: | |
%ptr = alloca i8* | |
%old_size = alloca i64 | |
%align = alloca i64 | |
store i8* %0, i8** %ptr, align 8 | |
store i64 %1, i64* %old_size, align 8 | |
store i64 %2, i64* %align, align 8 | |
%3 = load i8*, i8** %ptr, align 8 | |
%4 = load i64, i64* %old_size, align 8 | |
%5 = load i64, i64* %align, align 8 | |
call void @_ZN4heap10deallocate20hb6b00bc54f0213287eaE(i8* %3, i64 %4, i64 %5) | |
ret void | |
} | |
define internal void @_ZN27std..sync..condvar..Condvar9drop.454217he542d37ffa77616cE(%"1.std::sync::condvar::Condvar"*) unnamed_addr personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%1 = alloca { i8*, i32 } | |
%2 = getelementptr inbounds %"1.std::sync::condvar::Condvar", %"1.std::sync::condvar::Condvar"* %0, i32 0, i32 1 | |
%3 = load i8, i8* %2, align 1 | |
%4 = icmp ne i8 %3, -44 | |
%5 = icmp ne i8 %3, 29 | |
%6 = and i1 %4, %5 | |
br i1 %6, label %cond, label %next | |
next: ; preds = %cond, %entry-block | |
%7 = icmp eq i8 %3, -44 | |
br i1 %7, label %cond2, label %next1 | |
cond: ; preds = %entry-block | |
call void @llvm.debugtrap() | |
br label %next | |
next1: ; preds = %normal-return, %next | |
ret void | |
cond2: ; preds = %next | |
invoke void @_ZN4sync7condvar12Condvar.Drop4drop20hb084e6639e79e568aeqE(%"1.std::sync::condvar::Condvar"* dereferenceable(16) %0) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %cond2 | |
call void @_ZN27std..sync..condvar..Condvar9drop.454517he542d37ffa77616cE(%"1.std::sync::condvar::Condvar"* %0) | |
br label %next1 | |
unwind_custom_: ; preds = %cond2 | |
%8 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %8, { i8*, i32 }* %1 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%9 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %9 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @_ZN27std..sync..condvar..Condvar9drop.454517he542d37ffa77616cE(%"1.std::sync::condvar::Condvar"* %0) | |
br label %resume | |
} | |
declare void @_ZN4sync7condvar12Condvar.Drop4drop20hb084e6639e79e568aeqE(%"1.std::sync::condvar::Condvar"* dereferenceable(16)) unnamed_addr | |
define internal void @_ZN27std..sync..condvar..Condvar9drop.454517he542d37ffa77616cE(%"1.std::sync::condvar::Condvar"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"1.std::sync::condvar::Condvar", %"1.std::sync::condvar::Condvar"* %0, i32 0, i32 0 | |
call void @"_ZN44Box$LT$std..sync..condvar..StaticCondvar$GT$9drop.454817h6dfefe4f6c73a730E"(%"1.std::sync::condvar::StaticCondvar"** %1) | |
ret void | |
} | |
define internal void @"_ZN44Box$LT$std..sync..condvar..StaticCondvar$GT$9drop.454817h6dfefe4f6c73a730E"(%"1.std::sync::condvar::StaticCondvar"**) unnamed_addr { | |
entry-block: | |
%1 = load %"1.std::sync::condvar::StaticCondvar"*, %"1.std::sync::condvar::StaticCondvar"** %0 | |
%2 = ptrtoint %"1.std::sync::condvar::StaticCondvar"* %1 to i64 | |
%3 = icmp ne i64 %2, 2097865012304223517 | |
br i1 %3, label %cond, label %next | |
next: ; preds = %cond, %entry-block | |
ret void | |
cond: ; preds = %entry-block | |
%4 = bitcast %"1.std::sync::condvar::StaticCondvar"* %1 to i8* | |
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %4, i64 56, i64 8) | |
br label %next | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN3mem11size_of_val21h13591634141023046622E(%"5.alloc::arc::ArcInner<std::thread::Inner>"* dereferenceable(72)) unnamed_addr #1 { | |
entry-block: | |
%val = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"* | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %0, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %val, align 8 | |
%1 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %val, align 8, !nonnull !1 | |
ret i64 72 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN3mem12align_of_val20h2104549912459974077E(%"5.alloc::arc::ArcInner<std::thread::Inner>"* dereferenceable(72)) unnamed_addr #1 { | |
entry-block: | |
%val = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"* | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %0, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %val, align 8 | |
%1 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %val, align 8, !nonnull !1 | |
ret i64 8 | |
} | |
define internal void @"_ZN41alloc..arc..Arc$LT$std..thread..Inner$GT$9drop.455517hd05f57c09b6baebcE"(%"5.alloc::arc::Arc<std::thread::Inner>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %0, i32 0, i32 0 | |
ret void | |
} | |
define internal void @"_ZN30std..thread..Packet$LT$i32$GT$9drop.455817h5a9c551b027e0483E"(%"1.std::thread::Packet<i32>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"1.std::thread::Packet<i32>", %"1.std::thread::Packet<i32>"* %0, i32 0, i32 0 | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1) | |
ret void | |
} | |
define internal void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*) unnamed_addr personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%1 = alloca { i8*, i32 } | |
invoke void @"_ZN3arc17Arc$LT$T$GT$.Drop4drop20h1317657346980924594E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(8) %0) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %entry-block | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.457817h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0) | |
ret void | |
unwind_custom_: ; preds = %entry-block | |
%2 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %2, { i8*, i32 }* %1 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%3 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %3 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.457817h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0) | |
br label %resume | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN3arc17Arc$LT$T$GT$.Drop4drop20h1317657346980924594E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%thin = alloca {}* | |
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** | |
%1 = alloca i64 | |
%2 = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%auto_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%3 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref to i8* | |
call void @llvm.memset.p0i8.i64(i8* %3, i8 29, i64 8, i32 8, i1 false) | |
store %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8 | |
%4 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1 | |
%5 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %4, i32 0, i32 0 | |
%6 = call dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref21h11781260250671347003E"(%"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8) %5) | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %6, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8 | |
%7 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8, !nonnull !1 | |
%8 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %7, align 8 | |
%9 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %8 to {}* | |
store {}* %9, {}** %thin, align 8 | |
%10 = load {}*, {}** %thin, align 8 | |
%11 = ptrtoint {}* %10 to i64 | |
%12 = icmp eq i64 %11, 2097865012304223517 | |
br i1 %12, label %then-block-122-, label %next-block | |
then-block-122-: ; preds = %entry-block | |
br label %clean_ast_105_ | |
clean_ast_105_: ; preds = %clean_ast_105_1, %then-block-122- | |
br label %return | |
next-block: ; preds = %entry-block | |
%13 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1 | |
%14 = call dereferenceable(48) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h16251209249348122152E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %13) | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %14, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %2, align 8 | |
%15 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %2, align 8, !nonnull !1 | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %15, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8 | |
%16 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8, !nonnull !1 | |
%17 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %16, i32 0, i32 0 | |
%18 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_sub20h8772de3cc84a5649T1KE(%"2.core::sync::atomic::AtomicUsize"* dereferenceable(8) %17, i64 1, i8 1) | |
store i64 %18, i64* %1, align 8 | |
%19 = load i64, i64* %1, align 8 | |
%20 = icmp ne i64 %19, 1 | |
br i1 %20, label %then-block-135-, label %next-block2 | |
then-block-135-: ; preds = %next-block | |
br label %clean_ast_105_1 | |
clean_ast_105_1: ; preds = %then-block-135- | |
br label %clean_ast_105_ | |
next-block2: ; preds = %next-block | |
call void @_ZN4sync6atomic5fence20hfb767f14e632fab6sdLE(i8 2) | |
%21 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1 | |
call void @"_ZN3arc12Arc$LT$T$GT$9drop_slow21h17142707471852181233E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(8) %21) | |
br label %return | |
return: ; preds = %next-block2, %clean_ast_105_ | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref21h11781260250671347003E"(%"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* | |
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** | |
store %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %0, %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"** %self, align 8 | |
%1 = load %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"*, %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %1, i32 0, i32 0 | |
%3 = call dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref20h8515728795812639633E"(%"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8) %2) | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %3, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8 | |
%4 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8, !nonnull !1 | |
ret %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %4 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN7nonzero22NonZero$LT$T$GT$.Deref5deref20h8515728795812639633E"(%"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* | |
%inner = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** | |
store %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %0, %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"** %self, align 8 | |
%1 = load %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"*, %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %1, i32 0, i32 0 | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %2, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %inner | |
%3 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %inner, align 8, !nonnull !1 | |
ret %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %3 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal dereferenceable(48) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h16251209249348122152E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** | |
store %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8 | |
%1 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1, i32 0, i32 0 | |
%3 = call dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref21h11781260250671347003E"(%"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8) %2) | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %3, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8 | |
%4 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8, !nonnull !1 | |
%5 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %4, align 8 | |
ret %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %5 | |
} | |
; Function Attrs: noinline uwtable | |
define internal void @"_ZN3arc12Arc$LT$T$GT$9drop_slow21h17142707471852181233E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(8)) unnamed_addr #5 { | |
entry-block: | |
%self = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%ptr = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%overloaded_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** | |
%1 = alloca i64 | |
%2 = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%auto_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%3 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref to i8* | |
call void @llvm.memset.p0i8.i64(i8* %3, i8 29, i64 8, i32 8, i1 false) | |
%4 = alloca i64 | |
%5 = alloca i64 | |
store %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8 | |
%6 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1 | |
%7 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %6, i32 0, i32 0 | |
%8 = call dereferenceable(8) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** @"_ZN3ptr21Shared$LT$T$GT$.Deref5deref21h11781260250671347003E"(%"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* noalias readonly dereferenceable(8) %7) | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %8, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8 | |
%9 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*** %overloaded_deref, align 8, !nonnull !1 | |
%10 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %9, align 8 | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %10, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8 | |
%11 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8 | |
%12 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %11, i32 0, i32 2 | |
call void @"_ZN167core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$9drop.456417hd7350c3333b81328E"(%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %12) | |
%13 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1 | |
%14 = call dereferenceable(48) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h16251209249348122152E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %13) | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %14, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %2, align 8 | |
%15 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %2, align 8, !nonnull !1 | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %15, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8 | |
%16 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8, !nonnull !1 | |
%17 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %16, i32 0, i32 1 | |
%18 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_sub20h8772de3cc84a5649T1KE(%"2.core::sync::atomic::AtomicUsize"* dereferenceable(8) %17, i64 1, i8 1) | |
store i64 %18, i64* %1, align 8 | |
%19 = load i64, i64* %1, align 8 | |
%20 = icmp eq i64 %19, 1 | |
br i1 %20, label %then-block-502-, label %next-block | |
then-block-502-: ; preds = %entry-block | |
call void @_ZN4sync6atomic5fence20hfb767f14e632fab6sdLE(i8 2) | |
%21 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8 | |
%22 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %21 to i8* | |
%23 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8 | |
%24 = call i64 @_ZN3mem11size_of_val21h11933358947903493358E(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(48) %23) | |
store i64 %24, i64* %4, align 8 | |
%25 = load i64, i64* %4, align 8 | |
%26 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8 | |
%27 = call i64 @_ZN3mem12align_of_val21h12711680832418996519E(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(48) %26) | |
store i64 %27, i64* %5, align 8 | |
%28 = load i64, i64* %5, align 8 | |
call void @_ZN4heap10deallocate20hb6b00bc54f0213287eaE(i8* %22, i64 %25, i64 %28) | |
br label %next-block | |
next-block: ; preds = %entry-block, %then-block-502- | |
ret void | |
} | |
define internal void @"_ZN167core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$9drop.456417hd7350c3333b81328E"(%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>", %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %0, i32 0, i32 0 | |
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.456717he26f16b5b60edca1E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %1) | |
ret void | |
} | |
define internal void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.456717he26f16b5b60edca1E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>", %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %0, i32 0, i32 0 | |
%2 = load i64, i64* %1 | |
switch i64 %2, label %enum-iter-ret-void [ | |
i64 0, label %enum-iter-variant-0 | |
i64 1, label %enum-iter-variant-1 | |
] | |
enum-iter-ret-void: ; preds = %entry-block | |
ret void | |
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0 | |
ret void | |
enum-iter-variant-0: ; preds = %entry-block | |
br label %enum-iter-next | |
enum-iter-variant-1: ; preds = %entry-block | |
%3 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %0 to { i64, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }* | |
%4 = getelementptr inbounds { i64, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }, { i64, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }* %3, i32 0, i32 1 | |
call void @"_ZN109core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.457017h65983c191404b38bE"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %4) | |
br label %enum-iter-next | |
} | |
define internal void @"_ZN109core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.457017h65983c191404b38bE"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>", %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0 | |
%2 = load i8, i8* %1 | |
switch i8 %2, label %enum-iter-ret-void [ | |
i8 0, label %enum-iter-variant-0 | |
i8 1, label %enum-iter-variant-1 | |
] | |
enum-iter-ret-void: ; preds = %entry-block | |
ret void | |
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0 | |
ret void | |
enum-iter-variant-0: ; preds = %entry-block | |
%3 = bitcast %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, i32 }* | |
%4 = getelementptr inbounds { i8, i32 }, { i8, i32 }* %3, i32 0, i32 1 | |
br label %enum-iter-next | |
enum-iter-variant-1: ; preds = %entry-block | |
%5 = bitcast %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, { i8*, void (i8*)** } }* | |
%6 = getelementptr inbounds { i8, { i8*, void (i8*)** } }, { i8, { i8*, void (i8*)** } }* %5, i32 0, i32 1 | |
call void @"_ZN70Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$9drop.457317hf1dc3785f4cd9f40E"({ i8*, void (i8*)** }* %6) | |
br label %enum-iter-next | |
} | |
define internal void @"_ZN70Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$9drop.457317hf1dc3785f4cd9f40E"({ i8*, void (i8*)** }*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 0 | |
%2 = load i8*, i8** %1 | |
%3 = ptrtoint i8* %2 to i64 | |
%4 = icmp ne i64 %3, 2097865012304223517 | |
br i1 %4, label %cond, label %next | |
next: ; preds = %next1, %entry-block | |
ret void | |
cond: ; preds = %entry-block | |
call void @"_ZN59core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static9drop.457617h048d40956cb2c5a6E"({ i8*, void (i8*)** }* %0) | |
%5 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 1 | |
%6 = load void (i8*)**, void (i8*)*** %5 | |
%7 = bitcast void (i8*)** %6 to i64* | |
%8 = getelementptr inbounds i64, i64* %7, i32 1 | |
%9 = getelementptr inbounds i64, i64* %7, i32 2 | |
%10 = load i64, i64* %8 | |
%11 = load i64, i64* %9 | |
%12 = icmp ne i64 %10, 0 | |
br i1 %12, label %cond2, label %next1 | |
next1: ; preds = %cond2, %cond | |
br label %next | |
cond2: ; preds = %cond | |
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %2, i64 %10, i64 %11) | |
br label %next1 | |
} | |
define internal void @"_ZN59core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static9drop.457617h048d40956cb2c5a6E"({ i8*, void (i8*)** }*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 0 | |
%2 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 1 | |
%3 = load void (i8*)**, void (i8*)*** %2 | |
%4 = load void (i8*)*, void (i8*)** %3 | |
%5 = load i8*, i8** %1 | |
call void %4(i8* %5) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN3mem11size_of_val21h11933358947903493358E(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(48)) unnamed_addr #1 { | |
entry-block: | |
%val = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %val, align 8 | |
%1 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %val, align 8, !nonnull !1 | |
ret i64 48 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN3mem12align_of_val21h12711680832418996519E(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* dereferenceable(48)) unnamed_addr #1 { | |
entry-block: | |
%val = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %val, align 8 | |
%1 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %val, align 8, !nonnull !1 | |
ret i64 8 | |
} | |
define internal void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.457817h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, i32 0, i32 0 | |
ret void | |
} | |
; Function Attrs: cold noinline noreturn uwtable | |
define internal void @_ZN6result13unwrap_failed19h760605379628351383E(i8* noalias nonnull readonly, i64, %"1.std::io::error::Error"* noalias nocapture dereferenceable(16) %error) unnamed_addr #7 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%msg = alloca %str_slice | |
%2 = alloca %"2.core::fmt::Arguments" | |
%3 = alloca { %str_slice*, i64 } | |
%4 = alloca [2 x %"2.core::fmt::ArgumentV1"] | |
%5 = alloca { %str_slice*, %"1.std::io::error::Error"* } | |
%__llmatch = alloca %str_slice** | |
%__arg0 = alloca %str_slice* | |
%__llmatch1 = alloca %"1.std::io::error::Error"** | |
%__arg1 = alloca %"1.std::io::error::Error"* | |
%6 = alloca { i8*, i32 } | |
%__coerce_target = alloca { %"2.core::fmt::ArgumentV1"*, i64 } | |
%7 = getelementptr inbounds %str_slice, %str_slice* %msg, i32 0, i32 0 | |
store i8* %0, i8** %7 | |
%8 = getelementptr inbounds %str_slice, %str_slice* %msg, i32 0, i32 1 | |
store i64 %1, i64* %8 | |
%9 = bitcast { %str_slice*, i64 }* %3 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* bitcast ({ %str_slice*, i64 }* @_ZN6result13unwrap_failed15__STATIC_FMTSTR20hf92ae00c19516543Q5OE to i8*), i64 16, i32 8, i1 false) | |
%10 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %3, i32 0, i32 0 | |
%11 = load %str_slice*, %str_slice** %10 | |
%12 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %3, i32 0, i32 1 | |
%13 = load i64, i64* %12 | |
%14 = getelementptr inbounds { %str_slice*, %"1.std::io::error::Error"* }, { %str_slice*, %"1.std::io::error::Error"* }* %5, i32 0, i32 0 | |
store %str_slice* %msg, %str_slice** %14, align 8 | |
%15 = getelementptr inbounds { %str_slice*, %"1.std::io::error::Error"* }, { %str_slice*, %"1.std::io::error::Error"* }* %5, i32 0, i32 1 | |
store %"1.std::io::error::Error"* %error, %"1.std::io::error::Error"** %15, align 8 | |
%16 = getelementptr inbounds { %str_slice*, %"1.std::io::error::Error"* }, { %str_slice*, %"1.std::io::error::Error"* }* %5, i32 0, i32 0 | |
%17 = getelementptr inbounds { %str_slice*, %"1.std::io::error::Error"* }, { %str_slice*, %"1.std::io::error::Error"* }* %5, i32 0, i32 1 | |
store %"1.std::io::error::Error"** %17, %"1.std::io::error::Error"*** %__llmatch1 | |
store %str_slice** %16, %str_slice*** %__llmatch | |
br label %case_body | |
case_body: ; preds = %entry-block | |
%18 = load %"1.std::io::error::Error"**, %"1.std::io::error::Error"*** %__llmatch1 | |
%19 = load %"1.std::io::error::Error"*, %"1.std::io::error::Error"** %18, align 8, !nonnull !1 | |
store %"1.std::io::error::Error"* %19, %"1.std::io::error::Error"** %__arg1, align 8 | |
%20 = load %str_slice**, %str_slice*** %__llmatch | |
%21 = load %str_slice*, %str_slice** %20, align 8, !nonnull !1 | |
store %str_slice* %21, %str_slice** %__arg0, align 8 | |
%22 = getelementptr inbounds [2 x %"2.core::fmt::ArgumentV1"], [2 x %"2.core::fmt::ArgumentV1"]* %4, i32 0, i32 0 | |
%23 = getelementptr inbounds %"2.core::fmt::ArgumentV1", %"2.core::fmt::ArgumentV1"* %22, i32 0 | |
%24 = load %str_slice*, %str_slice** %__arg0, align 8, !nonnull !1 | |
invoke void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new20h2690282967059376933E"(%"2.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16) %23, %str_slice* noalias readonly dereferenceable(16) %24, i8 (%str_slice*, %"2.core::fmt::Formatter"*)* @"_ZN3fmt25_$RF$$u27$a$u20$T.Display3fmt21h14280652299265841549E") | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %case_body | |
%25 = getelementptr inbounds %"2.core::fmt::ArgumentV1", %"2.core::fmt::ArgumentV1"* %22, i32 1 | |
%26 = load %"1.std::io::error::Error"*, %"1.std::io::error::Error"** %__arg1, align 8, !nonnull !1 | |
invoke void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new20h3917174831126248797E"(%"2.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16) %25, %"1.std::io::error::Error"* noalias readonly dereferenceable(16) %26, i8 (%"1.std::io::error::Error"*, %"2.core::fmt::Formatter"*)* @_ZN2io5error24Error...core..fmt..Debug3fmt20h8da91e579551ef4dmhgE) | |
to label %normal-return2 unwind label %unwind_custom_ | |
unwind_custom_: ; preds = %normal-return3, %join, %normal-return, %case_body | |
%27 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %27, { i8*, i32 }* %6 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%28 = load { i8*, i32 }, { i8*, i32 }* %6 | |
resume { i8*, i32 } %28 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @_ZN21std..io..error..Error9drop.459117h0f4948ead3fac74eE(%"1.std::io::error::Error"* %error) | |
br label %resume | |
normal-return2: ; preds = %normal-return | |
br label %join | |
join: ; preds = %normal-return2 | |
%29 = bitcast [2 x %"2.core::fmt::ArgumentV1"]* %4 to %"2.core::fmt::ArgumentV1"* | |
%30 = getelementptr inbounds { %"2.core::fmt::ArgumentV1"*, i64 }, { %"2.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0 | |
store %"2.core::fmt::ArgumentV1"* %29, %"2.core::fmt::ArgumentV1"** %30 | |
%31 = getelementptr inbounds { %"2.core::fmt::ArgumentV1"*, i64 }, { %"2.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1 | |
store i64 2, i64* %31 | |
%32 = getelementptr inbounds { %"2.core::fmt::ArgumentV1"*, i64 }, { %"2.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 0 | |
%33 = load %"2.core::fmt::ArgumentV1"*, %"2.core::fmt::ArgumentV1"** %32 | |
%34 = getelementptr inbounds { %"2.core::fmt::ArgumentV1"*, i64 }, { %"2.core::fmt::ArgumentV1"*, i64 }* %__coerce_target, i32 0, i32 1 | |
%35 = load i64, i64* %34 | |
invoke void @"_ZN3fmt23Arguments$LT$$u27$a$GT$6new_v120he832f0357fe73cd4nLWE"(%"2.core::fmt::Arguments"* noalias nocapture sret dereferenceable(48) %2, %str_slice* noalias nonnull readonly %11, i64 %13, %"2.core::fmt::ArgumentV1"* noalias nonnull readonly %33, i64 %35) | |
to label %normal-return3 unwind label %unwind_custom_ | |
normal-return3: ; preds = %join | |
invoke void @_ZN9panicking9panic_fmt20hd3ab350bce4886e96YLE(%"2.core::fmt::Arguments"* noalias nocapture dereferenceable(48) %2, { %str_slice, i32 }* noalias readonly dereferenceable(24) @_ZN6result13unwrap_failed10_FILE_LINE20h4a56c969ed2d4d85A5OE) | |
to label %normal-return4 unwind label %unwind_custom_ | |
normal-return4: ; preds = %normal-return3 | |
unreachable | |
} | |
; Function Attrs: cold noinline noreturn | |
declare void @_ZN9panicking9panic_fmt20hd3ab350bce4886e96YLE(%"2.core::fmt::Arguments"* noalias nocapture dereferenceable(48), { %str_slice, i32 }* noalias readonly dereferenceable(24)) unnamed_addr #4 | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN3fmt23Arguments$LT$$u27$a$GT$6new_v120he832f0357fe73cd4nLWE"(%"2.core::fmt::Arguments"* noalias nocapture sret dereferenceable(48), %str_slice* noalias nonnull readonly, i64, %"2.core::fmt::ArgumentV1"* noalias nonnull readonly, i64) unnamed_addr #1 { | |
entry-block: | |
%pieces = alloca { %str_slice*, i64 } | |
%args = alloca { %"2.core::fmt::ArgumentV1"*, i64 } | |
%5 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %pieces, i32 0, i32 0 | |
store %str_slice* %1, %str_slice** %5 | |
%6 = getelementptr inbounds { %str_slice*, i64 }, { %str_slice*, i64 }* %pieces, i32 0, i32 1 | |
store i64 %2, i64* %6 | |
%7 = getelementptr inbounds { %"2.core::fmt::ArgumentV1"*, i64 }, { %"2.core::fmt::ArgumentV1"*, i64 }* %args, i32 0, i32 0 | |
store %"2.core::fmt::ArgumentV1"* %3, %"2.core::fmt::ArgumentV1"** %7 | |
%8 = getelementptr inbounds { %"2.core::fmt::ArgumentV1"*, i64 }, { %"2.core::fmt::ArgumentV1"*, i64 }* %args, i32 0, i32 1 | |
store i64 %4, i64* %8 | |
%9 = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %0, i32 0, i32 0 | |
%10 = bitcast { %str_slice*, i64 }* %pieces to i8* | |
%11 = bitcast { %str_slice*, i64 }* %9 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %11, i8* %10, i64 16, i32 8, i1 false) | |
%12 = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %0, i32 0, i32 1 | |
%13 = bitcast %"2.core::option::Option<&'static [core::fmt::rt::v1::Argument]>"* %12 to { { i8*, i8* } }* | |
%14 = bitcast { { i8*, i8* } }* %13 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %14, i8* bitcast ({ { i8*, i8* } }* @const4585 to i8*), i64 16, i32 8, i1 false) | |
%15 = getelementptr inbounds %"2.core::fmt::Arguments", %"2.core::fmt::Arguments"* %0, i32 0, i32 2 | |
%16 = bitcast { %"2.core::fmt::ArgumentV1"*, i64 }* %args to i8* | |
%17 = bitcast { %"2.core::fmt::ArgumentV1"*, i64 }* %15 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %17, i8* %16, i64 16, i32 8, i1 false) | |
ret void | |
} | |
; Function Attrs: uwtable | |
define internal void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new20h2690282967059376933E"(%"2.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16), %str_slice* noalias readonly dereferenceable(16), i8 (%str_slice*, %"2.core::fmt::Formatter"*)*) unnamed_addr #0 { | |
entry-block: | |
%x = alloca %str_slice* | |
%f = alloca i8 (%str_slice*, %"2.core::fmt::Formatter"*)* | |
store %str_slice* %1, %str_slice** %x, align 8 | |
store i8 (%str_slice*, %"2.core::fmt::Formatter"*)* %2, i8 (%str_slice*, %"2.core::fmt::Formatter"*)** %f, align 8 | |
%3 = getelementptr inbounds %"2.core::fmt::ArgumentV1", %"2.core::fmt::ArgumentV1"* %0, i32 0, i32 1 | |
%4 = load i8 (%str_slice*, %"2.core::fmt::Formatter"*)*, i8 (%str_slice*, %"2.core::fmt::Formatter"*)** %f, align 8 | |
%5 = bitcast i8 (%str_slice*, %"2.core::fmt::Formatter"*)* %4 to i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* | |
store i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* %5, i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)** %3 | |
%6 = getelementptr inbounds %"2.core::fmt::ArgumentV1", %"2.core::fmt::ArgumentV1"* %0, i32 0, i32 0 | |
%7 = load %str_slice*, %str_slice** %x, align 8, !nonnull !1 | |
%8 = bitcast %str_slice* %7 to %"2.core::fmt::Void"* | |
store %"2.core::fmt::Void"* %8, %"2.core::fmt::Void"** %6 | |
ret void | |
} | |
; Function Attrs: uwtable | |
define internal i8 @"_ZN3fmt25_$RF$$u27$a$u20$T.Display3fmt21h14280652299265841549E"(%str_slice* noalias readonly dereferenceable(16), %"2.core::fmt::Formatter"* dereferenceable(96)) unnamed_addr #0 { | |
entry-block: | |
%sret_slot = alloca %"2.core::result::Result<(), core::fmt::Error>" | |
%self = alloca %str_slice* | |
%f = alloca %"2.core::fmt::Formatter"* | |
store %str_slice* %0, %str_slice** %self, align 8 | |
store %"2.core::fmt::Formatter"* %1, %"2.core::fmt::Formatter"** %f, align 8 | |
%2 = load %str_slice*, %str_slice** %self, align 8, !nonnull !1 | |
%3 = getelementptr inbounds %str_slice, %str_slice* %2, i32 0, i32 0 | |
%4 = load i8*, i8** %3 | |
%5 = getelementptr inbounds %str_slice, %str_slice* %2, i32 0, i32 1 | |
%6 = load i64, i64* %5 | |
%7 = load %"2.core::fmt::Formatter"*, %"2.core::fmt::Formatter"** %f, align 8, !nonnull !1 | |
%8 = call i8 @_ZN3fmt11str.Display3fmt20heb4a20d360344d3ePoXE(i8* noalias nonnull readonly %4, i64 %6, %"2.core::fmt::Formatter"* dereferenceable(96) %7) | |
%9 = bitcast %"2.core::result::Result<(), core::fmt::Error>"* %sret_slot to i8* | |
store i8 %8, i8* %9, align 1 | |
%10 = bitcast %"2.core::result::Result<(), core::fmt::Error>"* %sret_slot to i8* | |
%11 = load i8, i8* %10, align 1 | |
ret i8 %11 | |
} | |
declare i8 @_ZN3fmt11str.Display3fmt20heb4a20d360344d3ePoXE(i8* noalias nonnull readonly, i64, %"2.core::fmt::Formatter"* dereferenceable(96)) unnamed_addr | |
define internal void @_ZN21std..io..error..Error9drop.459117h0f4948ead3fac74eE(%"1.std::io::error::Error"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"1.std::io::error::Error", %"1.std::io::error::Error"* %0, i32 0, i32 0 | |
call void @_ZN20std..io..error..Repr9drop.459417h73d67303828b8f3aE(%"1.std::io::error::Repr"* %1) | |
ret void | |
} | |
define internal void @_ZN20std..io..error..Repr9drop.459417h73d67303828b8f3aE(%"1.std::io::error::Repr"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"1.std::io::error::Repr", %"1.std::io::error::Repr"* %0, i32 0, i32 0 | |
%2 = load i8, i8* %1 | |
switch i8 %2, label %enum-iter-ret-void [ | |
i8 0, label %enum-iter-variant-0 | |
i8 1, label %enum-iter-variant-1 | |
] | |
enum-iter-ret-void: ; preds = %entry-block | |
ret void | |
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0 | |
ret void | |
enum-iter-variant-0: ; preds = %entry-block | |
%3 = bitcast %"1.std::io::error::Repr"* %0 to { i8, i32 }* | |
%4 = getelementptr inbounds { i8, i32 }, { i8, i32 }* %3, i32 0, i32 1 | |
br label %enum-iter-next | |
enum-iter-variant-1: ; preds = %entry-block | |
%5 = bitcast %"1.std::io::error::Repr"* %0 to { i8, %"1.std::io::error::Custom"* }* | |
%6 = getelementptr inbounds { i8, %"1.std::io::error::Custom"* }, { i8, %"1.std::io::error::Custom"* }* %5, i32 0, i32 1 | |
call void @"_ZN33Box$LT$std..io..error..Custom$GT$9drop.459717h4513d094efaf7431E"(%"1.std::io::error::Custom"** %6) | |
br label %enum-iter-next | |
} | |
define internal void @"_ZN33Box$LT$std..io..error..Custom$GT$9drop.459717h4513d094efaf7431E"(%"1.std::io::error::Custom"**) unnamed_addr { | |
entry-block: | |
%1 = load %"1.std::io::error::Custom"*, %"1.std::io::error::Custom"** %0 | |
%2 = ptrtoint %"1.std::io::error::Custom"* %1 to i64 | |
%3 = icmp ne i64 %2, 2097865012304223517 | |
br i1 %3, label %cond, label %next | |
next: ; preds = %cond, %entry-block | |
ret void | |
cond: ; preds = %entry-block | |
call void @_ZN22std..io..error..Custom9drop.460017h6dc269a32ef32b81E(%"1.std::io::error::Custom"* %1) | |
%4 = bitcast %"1.std::io::error::Custom"* %1 to i8* | |
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %4, i64 24, i64 8) | |
br label %next | |
} | |
define internal void @_ZN22std..io..error..Custom9drop.460017h6dc269a32ef32b81E(%"1.std::io::error::Custom"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"1.std::io::error::Custom", %"1.std::io::error::Custom"* %0, i32 0, i32 0 | |
%2 = getelementptr inbounds %"1.std::io::error::Custom", %"1.std::io::error::Custom"* %0, i32 0, i32 1 | |
call void @"_ZN92Box$LT$std..error..Error$u20$$u2b$$u20$Send$u20$$u2b$$u20$Sync$u20$$u2b$$u20$$u27$static$GT$9drop.460317h1624c30c1d24f008E"({ i8*, void (i8*)** }* %2) | |
ret void | |
} | |
define internal void @"_ZN92Box$LT$std..error..Error$u20$$u2b$$u20$Send$u20$$u2b$$u20$Sync$u20$$u2b$$u20$$u27$static$GT$9drop.460317h1624c30c1d24f008E"({ i8*, void (i8*)** }*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 0 | |
%2 = load i8*, i8** %1 | |
%3 = ptrtoint i8* %2 to i64 | |
%4 = icmp ne i64 %3, 2097865012304223517 | |
br i1 %4, label %cond, label %next | |
next: ; preds = %next1, %entry-block | |
ret void | |
cond: ; preds = %entry-block | |
call void @"_ZN81std..error..Error$u20$$u2b$$u20$Send$u20$$u2b$$u20$Sync$u20$$u2b$$u20$$u27$static9drop.460617hca1bd1bcadc0d2e4E"({ i8*, void (i8*)** }* %0) | |
%5 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 1 | |
%6 = load void (i8*)**, void (i8*)*** %5 | |
%7 = bitcast void (i8*)** %6 to i64* | |
%8 = getelementptr inbounds i64, i64* %7, i32 1 | |
%9 = getelementptr inbounds i64, i64* %7, i32 2 | |
%10 = load i64, i64* %8 | |
%11 = load i64, i64* %9 | |
%12 = icmp ne i64 %10, 0 | |
br i1 %12, label %cond2, label %next1 | |
next1: ; preds = %cond2, %cond | |
br label %next | |
cond2: ; preds = %cond | |
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %2, i64 %10, i64 %11) | |
br label %next1 | |
} | |
define internal void @"_ZN81std..error..Error$u20$$u2b$$u20$Send$u20$$u2b$$u20$Sync$u20$$u2b$$u20$$u27$static9drop.460617hca1bd1bcadc0d2e4E"({ i8*, void (i8*)** }*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 0 | |
%2 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %0, i32 0, i32 1 | |
%3 = load void (i8*)**, void (i8*)*** %2 | |
%4 = load void (i8*)*, void (i8*)** %3 | |
%5 = load i8*, i8** %1 | |
call void %4(i8* %5) | |
ret void | |
} | |
; Function Attrs: uwtable | |
define internal void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new20h3917174831126248797E"(%"2.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16), %"1.std::io::error::Error"* noalias readonly dereferenceable(16), i8 (%"1.std::io::error::Error"*, %"2.core::fmt::Formatter"*)*) unnamed_addr #0 { | |
entry-block: | |
%x = alloca %"1.std::io::error::Error"* | |
%f = alloca i8 (%"1.std::io::error::Error"*, %"2.core::fmt::Formatter"*)* | |
store %"1.std::io::error::Error"* %1, %"1.std::io::error::Error"** %x, align 8 | |
store i8 (%"1.std::io::error::Error"*, %"2.core::fmt::Formatter"*)* %2, i8 (%"1.std::io::error::Error"*, %"2.core::fmt::Formatter"*)** %f, align 8 | |
%3 = getelementptr inbounds %"2.core::fmt::ArgumentV1", %"2.core::fmt::ArgumentV1"* %0, i32 0, i32 1 | |
%4 = load i8 (%"1.std::io::error::Error"*, %"2.core::fmt::Formatter"*)*, i8 (%"1.std::io::error::Error"*, %"2.core::fmt::Formatter"*)** %f, align 8 | |
%5 = bitcast i8 (%"1.std::io::error::Error"*, %"2.core::fmt::Formatter"*)* %4 to i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* | |
store i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* %5, i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)** %3 | |
%6 = getelementptr inbounds %"2.core::fmt::ArgumentV1", %"2.core::fmt::ArgumentV1"* %0, i32 0, i32 0 | |
%7 = load %"1.std::io::error::Error"*, %"1.std::io::error::Error"** %x, align 8, !nonnull !1 | |
%8 = bitcast %"1.std::io::error::Error"* %7 to %"2.core::fmt::Void"* | |
store %"2.core::fmt::Void"* %8, %"2.core::fmt::Void"** %6 | |
ret void | |
} | |
declare i8 @_ZN2io5error24Error...core..fmt..Debug3fmt20h8da91e579551ef4dmhgE(%"1.std::io::error::Error"* noalias readonly dereferenceable(16), %"2.core::fmt::Formatter"* dereferenceable(96)) unnamed_addr | |
define internal void @"_ZN91core..result..Result$LT$std..thread..JoinHandle$LT$i32$GT$$C$$u20$std..io..error..Error$GT$9drop.461317h34cf5398cb2bde0fE"(%"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>", %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %0, i32 0, i32 0 | |
%2 = load i64, i64* %1 | |
switch i64 %2, label %enum-iter-ret-void [ | |
i64 0, label %enum-iter-variant-0 | |
i64 1, label %enum-iter-variant-1 | |
] | |
enum-iter-ret-void: ; preds = %entry-block | |
ret void | |
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0 | |
ret void | |
enum-iter-variant-0: ; preds = %entry-block | |
%3 = bitcast %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %0 to { i64, %"1.std::thread::JoinHandle<i32>" }* | |
%4 = getelementptr inbounds { i64, %"1.std::thread::JoinHandle<i32>" }, { i64, %"1.std::thread::JoinHandle<i32>" }* %3, i32 0, i32 1 | |
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.419017h4035594c4205a9a2E"(%"1.std::thread::JoinHandle<i32>"* %4) | |
br label %enum-iter-next | |
enum-iter-variant-1: ; preds = %entry-block | |
%5 = bitcast %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %0 to { i64, %"1.std::io::error::Error" }* | |
%6 = getelementptr inbounds { i64, %"1.std::io::error::Error" }, { i64, %"1.std::io::error::Error" }* %5, i32 0, i32 1 | |
call void @_ZN21std..io..error..Error9drop.459117h0f4948ead3fac74eE(%"1.std::io::error::Error"* %6) | |
br label %enum-iter-next | |
} | |
; Function Attrs: uwtable | |
define internal void @_ZN6thread7Builder5spawn21h11032278164270506546E(%"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* noalias nocapture sret dereferenceable(48), %"1.std::thread::Builder"* noalias nocapture dereferenceable(40) %self, %closure) unnamed_addr #0 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%2 = alloca { i8*, i32 } | |
%llretslotptr = alloca %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* | |
store %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %0, %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"** %llretslotptr | |
%f = alloca %closure | |
%iret_slot = alloca %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>" | |
%name = alloca %"2.core::option::Option<collections::string::String>" | |
%stack_size = alloca %"2.core::option::Option<usize>" | |
%stack_size1 = alloca i64 | |
%arg = alloca %"2.core::option::Option<usize>" | |
%3 = alloca i64 | |
%4 = alloca { i8*, i32 } | |
%my_thread = alloca %"1.std::thread::Thread" | |
%arg3 = alloca %"2.core::option::Option<collections::string::String>" | |
%their_thread = alloca %"1.std::thread::Thread" | |
%my_packet = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" | |
%const = alloca %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>" | |
%their_packet = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" | |
%main = alloca %closure.0 | |
%5 = alloca %"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>" | |
%6 = alloca %closure.0* | |
%arg16 = alloca %closure.0 | |
%__coerce_target = alloca { i8*, void (i8*)** } | |
%val = alloca %"1.std::sys::thread::Thread"* | |
%err = alloca %"1.std::io::error::Error"* | |
%ret_slot = alloca %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>" | |
%arg23 = alloca %"1.std::io::error::Error" | |
%7 = getelementptr inbounds %"1.std::thread::Builder", %"1.std::thread::Builder"* %self, i32 0, i32 0 | |
%8 = bitcast %"2.core::option::Option<collections::string::String>"* %7 to i8* | |
%9 = bitcast %"2.core::option::Option<collections::string::String>"* %name to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* %8, i64 24, i32 8, i1 false) | |
%10 = bitcast %"2.core::option::Option<collections::string::String>"* %7 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %10, i8 29, i64 24, i32 8, i1 false) | |
%11 = getelementptr inbounds %"1.std::thread::Builder", %"1.std::thread::Builder"* %self, i32 0, i32 1 | |
%12 = bitcast %"2.core::option::Option<usize>"* %11 to i8* | |
%13 = bitcast %"2.core::option::Option<usize>"* %stack_size to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %13, i8* %12, i64 16, i32 8, i1 false) | |
%14 = bitcast %"2.core::option::Option<usize>"* %stack_size to i8* | |
%15 = bitcast %"2.core::option::Option<usize>"* %arg to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %15, i8* %14, i64 16, i32 8, i1 false) | |
%16 = invoke i64 @_ZN10sys_common4util9min_stack20hb69ce365a8db0869qmtE() | |
to label %normal-return unwind label %unwind_ast_9151_ | |
normal-return: ; preds = %entry-block | |
store i64 %16, i64* %3, align 8 | |
%17 = load i64, i64* %3, align 8 | |
%18 = invoke i64 @"_ZN6option15Option$LT$T$GT$9unwrap_or21h13140009158740892166E"(%"2.core::option::Option<usize>"* noalias nocapture dereferenceable(16) %arg, i64 %17) | |
to label %normal-return2 unwind label %unwind_ast_9151_ | |
unwind_ast_9151_: ; preds = %normal-return, %entry-block | |
%19 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %19, { i8*, i32 }* %4 | |
br label %clean_ast_9151_ | |
resume: ; preds = %clean_custom_ | |
%20 = load { i8*, i32 }, { i8*, i32 }* %4 | |
resume { i8*, i32 } %20 | |
clean_custom_: ; preds = %clean_ast_9151_ | |
call void @_ZN20std..thread..Builder9drop.463317h032ab18fd448ef39E(%"1.std::thread::Builder"* %self) | |
br label %resume | |
clean_ast_9151_: ; preds = %clean_ast_9151_6, %unwind_ast_9151_ | |
call void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.430617h195c25966ed6cdf5E"(%"2.core::option::Option<collections::string::String>"* %name) | |
br label %clean_custom_ | |
normal-return2: ; preds = %normal-return | |
store i64 %18, i64* %stack_size1, align 8 | |
%21 = bitcast %"2.core::option::Option<collections::string::String>"* %name to i8* | |
%22 = bitcast %"2.core::option::Option<collections::string::String>"* %arg3 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %22, i8* %21, i64 24, i32 8, i1 false) | |
%23 = bitcast %"2.core::option::Option<collections::string::String>"* %name to i8* | |
call void @llvm.memset.p0i8.i64(i8* %23, i8 29, i64 24, i32 8, i1 false) | |
%24 = invoke i64 @_ZN6thread6Thread3new20h0619f76e80de11bfNGbE(%"2.core::option::Option<collections::string::String>"* noalias nocapture dereferenceable(24) %arg3) | |
to label %normal-return4 unwind label %unwind_ast_9151_5 | |
normal-return4: ; preds = %normal-return2 | |
%25 = bitcast %"1.std::thread::Thread"* %my_thread to i64* | |
store i64 %24, i64* %25, align 8 | |
%26 = invoke i64 @_ZN6thread27Thread...core..clone..Clone5clone20ha0faf72a4ee13167qGbE(%"1.std::thread::Thread"* noalias readonly dereferenceable(8) %my_thread) | |
to label %normal-return7 unwind label %unwind_ast_9151_8 | |
unwind_ast_9151_5: ; preds = %normal-return2 | |
%27 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %27, { i8*, i32 }* %4 | |
br label %clean_ast_9151_6 | |
clean_ast_9151_6: ; preds = %clean_ast_9151_9, %unwind_ast_9151_5 | |
br label %clean_ast_9151_ | |
normal-return7: ; preds = %normal-return4 | |
%28 = bitcast %"1.std::thread::Thread"* %their_thread to i64* | |
store i64 %26, i64* %28, align 8 | |
%29 = bitcast %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %const to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %29, i8* bitcast ({ { i64, [24 x i8] } }* @const4710 to i8*), i64 32, i32 8, i1 false) | |
%30 = invoke i64 @"_ZN3arc12Arc$LT$T$GT$3new21h12253150629752299668E"(%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* noalias nocapture dereferenceable(32) %const) | |
to label %normal-return10 unwind label %unwind_ast_9151_11 | |
unwind_ast_9151_8: ; preds = %normal-return4 | |
%31 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %31, { i8*, i32 }* %4 | |
br label %clean_ast_9151_9 | |
clean_ast_9151_9: ; preds = %clean_ast_9151_12, %unwind_ast_9151_8 | |
call void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"* %my_thread) | |
br label %clean_ast_9151_6 | |
normal-return10: ; preds = %normal-return7 | |
%32 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet to i64* | |
store i64 %30, i64* %32, align 8 | |
%33 = invoke i64 @"_ZN3arc18Arc$LT$T$GT$.Clone5clone21h16193723465726072285E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %my_packet) | |
to label %normal-return13 unwind label %unwind_ast_9151_14 | |
unwind_ast_9151_11: ; preds = %normal-return7 | |
%34 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %34, { i8*, i32 }* %4 | |
br label %clean_ast_9151_12 | |
clean_ast_9151_12: ; preds = %clean_ast_9151_15, %unwind_ast_9151_11 | |
call void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"* %their_thread) | |
br label %clean_ast_9151_9 | |
normal-return13: ; preds = %normal-return10 | |
%35 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet to i64* | |
store i64 %33, i64* %35, align 8 | |
%36 = getelementptr inbounds %closure.0, %closure.0* %main, i32 0, i32 0 | |
%37 = bitcast %"1.std::thread::Thread"* %their_thread to i8* | |
%38 = bitcast %"1.std::thread::Thread"* %36 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %38, i8* %37, i64 8, i32 8, i1 false) | |
%39 = bitcast %"1.std::thread::Thread"* %their_thread to i8* | |
call void @llvm.memset.p0i8.i64(i8* %39, i8 29, i64 8, i32 8, i1 false) | |
%40 = getelementptr inbounds %closure.0, %closure.0* %main, i32 0, i32 1 | |
%41 = getelementptr inbounds %closure.0, %closure.0* %main, i32 0, i32 2 | |
%42 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet to i8* | |
%43 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %41 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %43, i8* %42, i64 8, i32 8, i1 false) | |
%44 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet to i8* | |
call void @llvm.memset.p0i8.i64(i8* %44, i8 29, i64 8, i32 8, i1 false) | |
%45 = bitcast %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %iret_slot to { i64, %"1.std::thread::JoinHandle<i32>" }* | |
%46 = getelementptr inbounds { i64, %"1.std::thread::JoinHandle<i32>" }, { i64, %"1.std::thread::JoinHandle<i32>" }* %45, i32 0, i32 1 | |
%47 = getelementptr inbounds %"1.std::thread::JoinHandle<i32>", %"1.std::thread::JoinHandle<i32>"* %46, i32 0, i32 0 | |
%48 = getelementptr inbounds %"1.std::thread::JoinInner<i32>", %"1.std::thread::JoinInner<i32>"* %47, i32 0, i32 0 | |
%49 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %48 to { i64, %"1.std::sys::thread::Thread" }* | |
%50 = getelementptr inbounds { i64, %"1.std::sys::thread::Thread" }, { i64, %"1.std::sys::thread::Thread" }* %49, i32 0, i32 1 | |
%51 = load i64, i64* %stack_size1, align 8 | |
%52 = bitcast %closure.0* %main to i8* | |
%53 = bitcast %closure.0* %arg16 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %53, i8* %52, i64 16, i32 8, i1 false) | |
%54 = bitcast %closure.0* %main to i8* | |
call void @llvm.memset.p0i8.i64(i8* %54, i8 29, i64 16, i32 8, i1 false) | |
%55 = invoke i8* @_ZN4heap15exchange_malloc20h295535e6fb0e6dd3MfaE(i64 16, i64 8) | |
to label %normal-return.i unwind label %unwind_custom_.i | |
normal-return.i: ; preds = %normal-return13 | |
%56 = bitcast i8* %55 to %closure.0* | |
%57 = bitcast %closure.0* %arg16 to i8* | |
%58 = bitcast %closure.0* %56 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %58, i8* %57, i64 16, i32 8, i1 false) | |
%59 = bitcast %closure.0* %arg16 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %59, i8 29, i64 16, i32 8, i1 false), !alias.scope !7 | |
invoke void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.485217h6242f803e6a3193cE"(%closure.0* %arg16) | |
to label %"_ZN5boxed12Box$LT$T$GT$3new20h9153685487804326652E.exit" unwind label %unwind_ast_9151_18 | |
unwind_custom_.i: ; preds = %normal-return13 | |
%60 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %60, { i8*, i32 }* %2, !noalias !7 | |
invoke void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.485217h6242f803e6a3193cE"(%closure.0* %arg16) | |
to label %.noexc31 unwind label %unwind_ast_9151_18 | |
.noexc31: ; preds = %unwind_custom_.i | |
%61 = load { i8*, i32 }, { i8*, i32 }* %2, !noalias !7 | |
br label %unwind_ast_9151_18.body | |
"_ZN5boxed12Box$LT$T$GT$3new20h9153685487804326652E.exit": ; preds = %normal-return.i | |
br label %normal-return17 | |
unwind_ast_9151_14: ; preds = %normal-return10 | |
%62 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %62, { i8*, i32 }* %4 | |
br label %clean_ast_9151_15 | |
clean_ast_9151_15: ; preds = %clean_ast_9151_19, %unwind_ast_9151_14 | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet) | |
br label %clean_ast_9151_12 | |
normal-return17: ; preds = %"_ZN5boxed12Box$LT$T$GT$3new20h9153685487804326652E.exit" | |
store %closure.0* %56, %closure.0** %6, align 8 | |
%63 = load %closure.0*, %closure.0** %6, align 8, !nonnull !1 | |
%64 = bitcast %closure.0* %63 to i8* | |
%65 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %__coerce_target, i32 0, i32 0 | |
store i8* %64, i8** %65 | |
%66 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %__coerce_target, i32 0, i32 1 | |
store void (i8*)** bitcast ({ void (%closure.0*)*, i64, i64, void (%closure.0*, {})* }* @vtable4858 to void (i8*)**), void (i8*)*** %66 | |
%67 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %__coerce_target, i32 0, i32 0 | |
%68 = load i8*, i8** %67 | |
%69 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %__coerce_target, i32 0, i32 1 | |
%70 = load void (i8*)**, void (i8*)*** %69 | |
invoke void @_ZN3sys6thread6Thread3new20hfd8e70603581a437rTxE(%"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* noalias nocapture sret dereferenceable(24) %5, i64 %51, i8* noalias nonnull %68, void (i8*)** nonnull %70) | |
to label %normal-return20 unwind label %unwind_ast_9151_18 | |
unwind_ast_9151_18: ; preds = %unwind_custom_.i, %normal-return.i, %normal-return17 | |
%71 = landingpad { i8*, i32 } | |
cleanup | |
br label %unwind_ast_9151_18.body | |
unwind_ast_9151_18.body: ; preds = %.noexc31, %unwind_ast_9151_18 | |
%eh.lpad-body = phi { i8*, i32 } [ %71, %unwind_ast_9151_18 ], [ %61, %.noexc31 ] | |
store { i8*, i32 } %eh.lpad-body, { i8*, i32 }* %4 | |
br label %clean_ast_9151_19 | |
clean_ast_9151_19: ; preds = %clean_ast_9151_25, %unwind_ast_9151_18.body | |
call void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.485217h6242f803e6a3193cE"(%closure.0* %main) | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet) | |
br label %clean_ast_9151_15 | |
normal-return20: ; preds = %normal-return17 | |
%72 = getelementptr inbounds %"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>", %"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %5, i32 0, i32 0 | |
%73 = load i64, i64* %72, !range !2 | |
switch i64 %73, label %match_else [ | |
i64 0, label %match_case | |
i64 1, label %match_case22 | |
] | |
case_body: ; preds = %match_case | |
%74 = load %"1.std::sys::thread::Thread"*, %"1.std::sys::thread::Thread"** %val | |
%75 = bitcast %"1.std::sys::thread::Thread"* %74 to i8* | |
%76 = bitcast %"1.std::sys::thread::Thread"* %50 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %76, i8* %75, i64 16, i32 8, i1 false) | |
%77 = bitcast %"1.std::sys::thread::Thread"* %74 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %77, i8 29, i64 16, i32 8, i1 false) | |
call void @_ZN24std..sys..thread..Thread9drop.419917h5b8cd2efe3ae67d8E(%"1.std::sys::thread::Thread"* %74) | |
%78 = bitcast %"1.std::sys::thread::Thread"* %74 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %78, i8 29, i64 16, i32 8, i1 false) | |
br label %join | |
case_body21: ; preds = %match_case22 | |
%79 = load %"1.std::io::error::Error"*, %"1.std::io::error::Error"** %err | |
%80 = bitcast %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %ret_slot to { i64, %"1.std::io::error::Error" }* | |
%81 = getelementptr inbounds { i64, %"1.std::io::error::Error" }, { i64, %"1.std::io::error::Error" }* %80, i32 0, i32 1 | |
%82 = bitcast %"1.std::io::error::Error"* %79 to i8* | |
%83 = bitcast %"1.std::io::error::Error"* %arg23 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %83, i8* %82, i64 16, i32 8, i1 false) | |
%84 = bitcast %"1.std::io::error::Error"* %79 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %84, i8 29, i64 16, i32 8, i1 false) | |
invoke void @"_ZN7convert15T.From$LT$T$GT$4from21h12668158018310012419E"(%"1.std::io::error::Error"* noalias nocapture sret dereferenceable(16) %81, %"1.std::io::error::Error"* noalias nocapture dereferenceable(16) %arg23) | |
to label %normal-return24 unwind label %unwind_custom_ | |
match_else: ; preds = %normal-return20 | |
unreachable | |
match_case: ; preds = %normal-return20 | |
%85 = bitcast %"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %5 to { i64, %"1.std::sys::thread::Thread" }* | |
%86 = getelementptr inbounds { i64, %"1.std::sys::thread::Thread" }, { i64, %"1.std::sys::thread::Thread" }* %85, i32 0, i32 1 | |
store %"1.std::sys::thread::Thread"* %86, %"1.std::sys::thread::Thread"** %val | |
br label %case_body | |
match_case22: ; preds = %normal-return20 | |
%87 = bitcast %"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %5 to { i64, %"1.std::io::error::Error" }* | |
%88 = getelementptr inbounds { i64, %"1.std::io::error::Error" }, { i64, %"1.std::io::error::Error" }* %87, i32 0, i32 1 | |
store %"1.std::io::error::Error"* %88, %"1.std::io::error::Error"** %err | |
br label %case_body21 | |
normal-return24: ; preds = %case_body21 | |
%89 = getelementptr inbounds %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>", %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %ret_slot, i32 0, i32 0 | |
store i64 1, i64* %89 | |
store %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %ret_slot, %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"** %llretslotptr | |
br label %clean_custom_29 | |
unwind_custom_: ; preds = %case_body21 | |
%90 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %90, { i8*, i32 }* %4 | |
br label %clean_custom_26 | |
clean_ast_9151_25: ; preds = %clean_custom_26 | |
call void @"_ZN81core..result..Result$LT$std..sys..thread..Thread$C$$u20$std..io..error..Error$GT$9drop.486117h1f3bc4c9c9e07abcE"(%"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %5) | |
br label %clean_ast_9151_19 | |
clean_custom_26: ; preds = %unwind_custom_ | |
call void @_ZN21std..io..error..Error9drop.459117h0f4948ead3fac74eE(%"1.std::io::error::Error"* %79) | |
%91 = bitcast %"1.std::io::error::Error"* %79 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %91, i8 29, i64 16, i32 8, i1 false) | |
br label %clean_ast_9151_25 | |
clean_custom_27: ; preds = %clean_custom_30, %clean_ast_9151_28 | |
call void @_ZN20std..thread..Builder9drop.463317h032ab18fd448ef39E(%"1.std::thread::Builder"* %self) | |
br label %return | |
clean_ast_9151_28: ; preds = %clean_custom_29 | |
call void @"_ZN81core..result..Result$LT$std..sys..thread..Thread$C$$u20$std..io..error..Error$GT$9drop.486117h1f3bc4c9c9e07abcE"(%"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %5) | |
call void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.485217h6242f803e6a3193cE"(%closure.0* %main) | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet) | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet) | |
call void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"* %their_thread) | |
call void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"* %my_thread) | |
call void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.430617h195c25966ed6cdf5E"(%"2.core::option::Option<collections::string::String>"* %name) | |
br label %clean_custom_27 | |
clean_custom_29: ; preds = %normal-return24 | |
call void @_ZN21std..io..error..Error9drop.459117h0f4948ead3fac74eE(%"1.std::io::error::Error"* %79) | |
%92 = bitcast %"1.std::io::error::Error"* %79 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %92, i8 29, i64 16, i32 8, i1 false) | |
br label %clean_ast_9151_28 | |
join: ; preds = %case_body | |
%93 = getelementptr inbounds %"2.core::option::Option<std::sys::thread::Thread>", %"2.core::option::Option<std::sys::thread::Thread>"* %48, i32 0, i32 0 | |
store i64 1, i64* %93 | |
%94 = getelementptr inbounds %"1.std::thread::JoinInner<i32>", %"1.std::thread::JoinInner<i32>"* %47, i32 0, i32 1 | |
%95 = bitcast %"1.std::thread::Thread"* %my_thread to i8* | |
%96 = bitcast %"1.std::thread::Thread"* %94 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %96, i8* %95, i64 8, i32 8, i1 false) | |
%97 = bitcast %"1.std::thread::Thread"* %my_thread to i8* | |
call void @llvm.memset.p0i8.i64(i8* %97, i8 29, i64 8, i32 8, i1 false) | |
%98 = getelementptr inbounds %"1.std::thread::JoinInner<i32>", %"1.std::thread::JoinInner<i32>"* %47, i32 0, i32 2 | |
%99 = getelementptr inbounds %"1.std::thread::Packet<i32>", %"1.std::thread::Packet<i32>"* %98, i32 0, i32 0 | |
%100 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet to i8* | |
%101 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %99 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %101, i8* %100, i64 8, i32 8, i1 false) | |
%102 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet to i8* | |
call void @llvm.memset.p0i8.i64(i8* %102, i8 29, i64 8, i32 8, i1 false) | |
%103 = getelementptr inbounds %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>", %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %iret_slot, i32 0, i32 0 | |
store i64 0, i64* %103 | |
call void @"_ZN81core..result..Result$LT$std..sys..thread..Thread$C$$u20$std..io..error..Error$GT$9drop.486117h1f3bc4c9c9e07abcE"(%"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %5) | |
call void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.485217h6242f803e6a3193cE"(%closure.0* %main) | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %their_packet) | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %my_packet) | |
call void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"* %their_thread) | |
call void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"* %my_thread) | |
call void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.430617h195c25966ed6cdf5E"(%"2.core::option::Option<collections::string::String>"* %name) | |
store %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %iret_slot, %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"** %llretslotptr | |
br label %clean_custom_30 | |
return: ; preds = %clean_custom_27 | |
%104 = load %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"*, %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"** %llretslotptr | |
%105 = bitcast %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %104 to i8* | |
%106 = bitcast %"2.core::result::Result<std::thread::JoinHandle<i32>, std::io::error::Error>"* %0 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %106, i8* %105, i64 48, i32 8, i1 false) | |
ret void | |
clean_custom_30: ; preds = %join | |
br label %clean_custom_27 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @"_ZN6option15Option$LT$T$GT$9unwrap_or21h13140009158740892166E"(%"2.core::option::Option<usize>"* noalias nocapture dereferenceable(16) %self, i64) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca i64 | |
%def = alloca i64 | |
%__llmatch = alloca i64* | |
%x = alloca i64 | |
store i64 %0, i64* %def, align 8 | |
%1 = getelementptr inbounds %"2.core::option::Option<usize>", %"2.core::option::Option<usize>"* %self, i32 0, i32 0 | |
%2 = load i64, i64* %1, !range !2 | |
switch i64 %2, label %match_else [ | |
i64 1, label %match_case | |
i64 0, label %match_case2 | |
] | |
case_body: ; preds = %match_case | |
%3 = load i64*, i64** %__llmatch | |
%4 = load i64, i64* %3, align 8 | |
store i64 %4, i64* %x, align 8 | |
%5 = load i64, i64* %x, align 8 | |
store i64 %5, i64* %sret_slot, align 8 | |
br label %join | |
case_body1: ; preds = %match_case2 | |
%6 = load i64, i64* %def, align 8 | |
store i64 %6, i64* %sret_slot, align 8 | |
br label %join | |
match_else: ; preds = %entry-block | |
unreachable | |
match_case: ; preds = %entry-block | |
%7 = bitcast %"2.core::option::Option<usize>"* %self to { i64, i64 }* | |
%8 = getelementptr inbounds { i64, i64 }, { i64, i64 }* %7, i32 0, i32 1 | |
store i64* %8, i64** %__llmatch | |
br label %case_body | |
match_case2: ; preds = %entry-block | |
br label %case_body1 | |
join: ; preds = %case_body1, %case_body | |
%9 = load i64, i64* %sret_slot, align 8 | |
ret i64 %9 | |
} | |
declare i64 @_ZN10sys_common4util9min_stack20hb69ce365a8db0869qmtE() unnamed_addr | |
define internal void @_ZN20std..thread..Builder9drop.463317h032ab18fd448ef39E(%"1.std::thread::Builder"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"1.std::thread::Builder", %"1.std::thread::Builder"* %0, i32 0, i32 0 | |
call void @"_ZN55core..option..Option$LT$collections..string..String$GT$9drop.430617h195c25966ed6cdf5E"(%"2.core::option::Option<collections::string::String>"* %1) | |
%2 = getelementptr inbounds %"1.std::thread::Builder", %"1.std::thread::Builder"* %0, i32 0, i32 1 | |
ret void | |
} | |
declare i64 @_ZN6thread6Thread3new20h0619f76e80de11bfNGbE(%"2.core::option::Option<collections::string::String>"* noalias nocapture dereferenceable(24)) unnamed_addr | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN6thread27Thread...core..clone..Clone5clone20ha0faf72a4ee13167qGbE(%"1.std::thread::Thread"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca %"1.std::thread::Thread" | |
%self = alloca %"1.std::thread::Thread"* | |
%__self_0_0 = alloca %"5.alloc::arc::Arc<std::thread::Inner>"* | |
store %"1.std::thread::Thread"* %0, %"1.std::thread::Thread"** %self, align 8 | |
%1 = load %"1.std::thread::Thread"*, %"1.std::thread::Thread"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"1.std::thread::Thread", %"1.std::thread::Thread"* %1, i32 0, i32 0 | |
store %"5.alloc::arc::Arc<std::thread::Inner>"* %2, %"5.alloc::arc::Arc<std::thread::Inner>"** %__self_0_0 | |
br label %case_body | |
case_body: ; preds = %entry-block | |
%3 = getelementptr inbounds %"1.std::thread::Thread", %"1.std::thread::Thread"* %sret_slot, i32 0, i32 0 | |
%4 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %__self_0_0, align 8, !nonnull !1 | |
%5 = call i64 @"_ZN3arc18Arc$LT$T$GT$.Clone5clone21h10827946175687659983E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8) %4) | |
%6 = bitcast %"5.alloc::arc::Arc<std::thread::Inner>"* %3 to i64* | |
store i64 %5, i64* %6, align 8 | |
br label %join | |
join: ; preds = %case_body | |
%7 = bitcast %"1.std::thread::Thread"* %sret_slot to i64* | |
%8 = load i64, i64* %7, align 8 | |
ret i64 %8 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @"_ZN3arc18Arc$LT$T$GT$.Clone5clone21h10827946175687659983E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca %"5.alloc::arc::Arc<std::thread::Inner>" | |
%self = alloca %"5.alloc::arc::Arc<std::thread::Inner>"* | |
%old_size = alloca i64 | |
%1 = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"* | |
%auto_deref = alloca %"5.alloc::arc::ArcInner<std::thread::Inner>"* | |
%2 = bitcast %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref to i8* | |
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 8, i32 8, i1 false) | |
store %"5.alloc::arc::Arc<std::thread::Inner>"* %0, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8 | |
%3 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1 | |
%4 = call dereferenceable(72) %"5.alloc::arc::ArcInner<std::thread::Inner>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h18010354011718457137E"(%"5.alloc::arc::Arc<std::thread::Inner>"* noalias readonly dereferenceable(8) %3) | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %4, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %1, align 8 | |
%5 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %1, align 8, !nonnull !1 | |
store %"5.alloc::arc::ArcInner<std::thread::Inner>"* %5, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8 | |
%6 = load %"5.alloc::arc::ArcInner<std::thread::Inner>"*, %"5.alloc::arc::ArcInner<std::thread::Inner>"** %auto_deref, align 8, !nonnull !1 | |
%7 = getelementptr inbounds %"5.alloc::arc::ArcInner<std::thread::Inner>", %"5.alloc::arc::ArcInner<std::thread::Inner>"* %6, i32 0, i32 0 | |
%8 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_add20he94ee3077db7985ax1KE(%"2.core::sync::atomic::AtomicUsize"* dereferenceable(8) %7, i64 1, i8 0) | |
store i64 %8, i64* %old_size, align 8 | |
%9 = load i64, i64* %old_size, align 8 | |
%10 = icmp ugt i64 %9, 9223372036854775807 | |
br i1 %10, label %then-block-100986-, label %next-block | |
then-block-100986-: ; preds = %entry-block | |
call void @llvm.trap() | |
unreachable | |
next-block: ; preds = %entry-block | |
%11 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %sret_slot, i32 0, i32 0 | |
%12 = load %"5.alloc::arc::Arc<std::thread::Inner>"*, %"5.alloc::arc::Arc<std::thread::Inner>"** %self, align 8, !nonnull !1 | |
%13 = getelementptr inbounds %"5.alloc::arc::Arc<std::thread::Inner>", %"5.alloc::arc::Arc<std::thread::Inner>"* %12, i32 0, i32 0 | |
%14 = bitcast %"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* %13 to i8* | |
%15 = bitcast %"2.core::ptr::Shared<alloc::arc::ArcInner<std::thread::Inner>>"* %11 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %15, i8* %14, i64 8, i32 8, i1 false) | |
%16 = bitcast %"5.alloc::arc::Arc<std::thread::Inner>"* %sret_slot to i64* | |
%17 = load i64, i64* %16, align 8 | |
ret i64 %17 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN4sync6atomic11AtomicUsize9fetch_add20he94ee3077db7985ax1KE(%"2.core::sync::atomic::AtomicUsize"* dereferenceable(8), i64, i8) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"2.core::sync::atomic::AtomicUsize"* | |
%val = alloca i64 | |
%order = alloca i8 | |
%3 = alloca i64* | |
store %"2.core::sync::atomic::AtomicUsize"* %0, %"2.core::sync::atomic::AtomicUsize"** %self, align 8 | |
store i64 %1, i64* %val, align 8 | |
store i8 %2, i8* %order, align 1 | |
%4 = load %"2.core::sync::atomic::AtomicUsize"*, %"2.core::sync::atomic::AtomicUsize"** %self, align 8, !nonnull !1 | |
%5 = getelementptr inbounds %"2.core::sync::atomic::AtomicUsize", %"2.core::sync::atomic::AtomicUsize"* %4, i32 0, i32 0 | |
%6 = call i64* @"_ZN4cell19UnsafeCell$LT$T$GT$3get21h11064512342180801429E"(%"2.core::cell::UnsafeCell<usize>"* dereferenceable(8) %5) | |
store i64* %6, i64** %3, align 8 | |
%7 = load i64*, i64** %3, align 8 | |
%8 = load i64, i64* %val, align 8 | |
%9 = load i8, i8* %order, align 1 | |
%10 = call i64 @_ZN4sync6atomic10atomic_add21h11377161173095199033E(i64* %7, i64 %8, i8 %9) | |
ret i64 %10 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN4sync6atomic10atomic_add21h11377161173095199033E(i64*, i64, i8) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca i64 | |
%dst = alloca i64* | |
%val = alloca i64 | |
%order = alloca i8 | |
store i64* %0, i64** %dst, align 8 | |
store i64 %1, i64* %val, align 8 | |
store i8 %2, i8* %order, align 1 | |
%3 = load i8, i8* %order, !range !3 | |
switch i8 %3, label %match_else [ | |
i8 2, label %match_case | |
i8 1, label %match_case5 | |
i8 3, label %match_case6 | |
i8 0, label %match_case7 | |
i8 4, label %match_case8 | |
] | |
case_body: ; preds = %match_case | |
%4 = load i64*, i64** %dst, align 8 | |
%5 = load i64, i64* %val, align 8 | |
%6 = atomicrmw add i64* %4, i64 %5 acquire | |
store i64 %6, i64* %sret_slot, align 8 | |
br label %join | |
case_body1: ; preds = %match_case5 | |
%7 = load i64*, i64** %dst, align 8 | |
%8 = load i64, i64* %val, align 8 | |
%9 = atomicrmw add i64* %7, i64 %8 release | |
store i64 %9, i64* %sret_slot, align 8 | |
br label %join | |
case_body2: ; preds = %match_case6 | |
%10 = load i64*, i64** %dst, align 8 | |
%11 = load i64, i64* %val, align 8 | |
%12 = atomicrmw add i64* %10, i64 %11 acq_rel | |
store i64 %12, i64* %sret_slot, align 8 | |
br label %join | |
case_body3: ; preds = %match_case7 | |
%13 = load i64*, i64** %dst, align 8 | |
%14 = load i64, i64* %val, align 8 | |
%15 = atomicrmw add i64* %13, i64 %14 monotonic | |
store i64 %15, i64* %sret_slot, align 8 | |
br label %join | |
case_body4: ; preds = %match_case8 | |
%16 = load i64*, i64** %dst, align 8 | |
%17 = load i64, i64* %val, align 8 | |
%18 = atomicrmw add i64* %16, i64 %17 seq_cst | |
store i64 %18, i64* %sret_slot, align 8 | |
br label %join | |
match_else: ; preds = %entry-block | |
unreachable | |
match_case: ; preds = %entry-block | |
br label %case_body | |
match_case5: ; preds = %entry-block | |
br label %case_body1 | |
match_case6: ; preds = %entry-block | |
br label %case_body2 | |
match_case7: ; preds = %entry-block | |
br label %case_body3 | |
match_case8: ; preds = %entry-block | |
br label %case_body4 | |
join: ; preds = %case_body4, %case_body3, %case_body2, %case_body1, %case_body | |
%19 = load i64, i64* %sret_slot, align 8 | |
ret i64 %19 | |
} | |
; Function Attrs: noreturn nounwind | |
declare void @llvm.trap() #8 | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @"_ZN3arc12Arc$LT$T$GT$3new21h12253150629752299668E"(%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* noalias nocapture dereferenceable(32) %data) unnamed_addr #1 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%sret_slot = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" | |
%x = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%0 = alloca { i8*, i32 } | |
%1 = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%2 = invoke i8* @_ZN4heap15exchange_malloc20h295535e6fb0e6dd3MfaE(i64 48, i64 8) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %entry-block | |
%3 = bitcast i8* %2 to %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%4 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %3, i32 0, i32 0 | |
%5 = bitcast %"2.core::sync::atomic::AtomicUsize"* %4 to { { i64 } }* | |
%6 = bitcast { { i64 } }* %5 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %6, i8* bitcast ({ { i64 } }* @const4685 to i8*), i64 8, i32 8, i1 false) | |
%7 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %3, i32 0, i32 1 | |
%8 = bitcast %"2.core::sync::atomic::AtomicUsize"* %7 to { { i64 } }* | |
%9 = bitcast { { i64 } }* %8 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* bitcast ({ { i64 } }* @const4685 to i8*), i64 8, i32 8, i1 false) | |
%10 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %3, i32 0, i32 2 | |
%11 = bitcast %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %data to i8* | |
%12 = bitcast %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %10 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %12, i8* %11, i64 32, i32 8, i1 false) | |
%13 = bitcast %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %data to i8* | |
call void @llvm.memset.p0i8.i64(i8* %13, i8 29, i64 32, i32 8, i1 false) | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %3, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %x, align 8 | |
%14 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %sret_slot, i32 0, i32 0 | |
%15 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %x, align 8, !nonnull !1 | |
%16 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %x to i8* | |
call void @llvm.memset.p0i8.i64(i8* %16, i8 29, i64 8, i32 8, i1 false) | |
%17 = invoke %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN5boxed12Box$LT$T$GT$8into_raw21h16068222734218473717E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias dereferenceable(48) %15) | |
to label %normal-return1 unwind label %unwind_ast_101151_ | |
unwind_custom_: ; preds = %entry-block | |
%18 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %18, { i8*, i32 }* %0 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%19 = load { i8*, i32 }, { i8*, i32 }* %0 | |
resume { i8*, i32 } %19 | |
clean_custom_: ; preds = %clean_custom_2, %unwind_custom_ | |
call void @"_ZN167core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$9drop.456417hd7350c3333b81328E"(%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %data) | |
br label %resume | |
normal-return1: ; preds = %normal-return | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %17, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8 | |
%20 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8 | |
%21 = invoke i64 @"_ZN3ptr15Shared$LT$T$GT$3new21h17471910972792813798E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %20) | |
to label %normal-return3 unwind label %unwind_ast_101151_ | |
unwind_ast_101151_: ; preds = %normal-return1, %normal-return | |
%22 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %22, { i8*, i32 }* %0 | |
br label %clean_ast_101151_ | |
clean_custom_2: ; preds = %clean_ast_101151_ | |
br label %clean_custom_ | |
clean_ast_101151_: ; preds = %unwind_ast_101151_ | |
call void @"_ZN206Box$LT$alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$GT$9drop.470517h977b0f9ef3118264E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %x) | |
br label %clean_custom_2 | |
normal-return3: ; preds = %normal-return1 | |
%23 = bitcast %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %14 to i64* | |
store i64 %21, i64* %23, align 8 | |
call void @"_ZN206Box$LT$alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$GT$9drop.470517h977b0f9ef3118264E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %x) | |
call void @"_ZN167core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$9drop.456417hd7350c3333b81328E"(%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %data) | |
%24 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %sret_slot to i64* | |
%25 = load i64, i64* %24, align 8 | |
ret i64 %25 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i8* @_ZN4heap15exchange_malloc20h295535e6fb0e6dd3MfaE(i64, i64) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca i8* | |
%size = alloca i64 | |
%align = alloca i64 | |
%ptr = alloca i8* | |
%2 = alloca i8 | |
store i64 %0, i64* %size, align 8 | |
store i64 %1, i64* %align, align 8 | |
%3 = load i64, i64* %size, align 8 | |
%4 = icmp eq i64 %3, 0 | |
br i1 %4, label %then-block-101190-, label %else-block | |
then-block-101190-: ; preds = %entry-block | |
store i8* inttoptr (i64 1 to i8*), i8** %sret_slot, align 8 | |
br label %join | |
else-block: ; preds = %entry-block | |
%5 = load i64, i64* %size, align 8 | |
%6 = load i64, i64* %align, align 8 | |
%7 = call i8* @_ZN4heap8allocate20hcda44ecaa4f7dda9SdaE(i64 %5, i64 %6) | |
store i8* %7, i8** %ptr, align 8 | |
%8 = load i8*, i8** %ptr, align 8 | |
%9 = call zeroext i1 @"_ZN3ptr14_$BP$mut$u20$T7is_null20h8484224088030641506E"(i8* %8) | |
%10 = zext i1 %9 to i8 | |
store i8 %10, i8* %2, align 1 | |
%11 = load i8, i8* %2, align 1, !range !0 | |
%12 = trunc i8 %11 to i1 | |
br i1 %12, label %then-block-101208-, label %next-block | |
then-block-101208-: ; preds = %else-block | |
call void @_ZN3oom3oom20h30d8eb252e73102ePzbE() | |
unreachable | |
next-block: ; preds = %else-block | |
%13 = load i8*, i8** %ptr, align 8 | |
store i8* %13, i8** %sret_slot, align 8 | |
br label %join | |
join: ; preds = %next-block, %then-block-101190- | |
%14 = load i8*, i8** %sret_slot, align 8 | |
ret i8* %14 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i8* @_ZN4heap8allocate20hcda44ecaa4f7dda9SdaE(i64, i64) unnamed_addr #1 { | |
entry-block: | |
%size.i = alloca i64 | |
%align.i = alloca i64 | |
%size = alloca i64 | |
%align = alloca i64 | |
%__arg = alloca i64 | |
%__arg1 = alloca i64 | |
store i64 %0, i64* %size, align 8 | |
store i64 %1, i64* %align, align 8 | |
%2 = load i64, i64* %size, align 8 | |
%3 = load i64, i64* %align, align 8 | |
store i64 %2, i64* %size.i, align 8 | |
store i64 %3, i64* %align.i, align 8 | |
%4 = load i64, i64* %size, align 8 | |
%5 = load i64, i64* %align, align 8 | |
store i64 %4, i64* %__arg, align 8 | |
%6 = load i64, i64* %__arg | |
store i64 %5, i64* %__arg1, align 8 | |
%7 = load i64, i64* %__arg1 | |
%8 = call i8* @__rust_allocate(i64 %6, i64 %7) | |
ret i8* %8 | |
} | |
; Function Attrs: nounwind | |
declare noalias i8* @__rust_allocate(i64, i64) unnamed_addr #3 | |
; Function Attrs: cold noinline noreturn | |
declare void @_ZN3oom3oom20h30d8eb252e73102ePzbE() unnamed_addr #4 | |
; Function Attrs: uwtable | |
define internal i64 @"_ZN3ptr15Shared$LT$T$GT$3new21h17471910972792813798E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*) unnamed_addr #0 { | |
entry-block: | |
%sret_slot.i = alloca %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" | |
%inner.i = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%sret_slot = alloca %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>" | |
%ptr = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8 | |
%1 = getelementptr inbounds %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %sret_slot, i32 0, i32 0 | |
%2 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %ptr, align 8 | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %2, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %inner.i, align 8 | |
%3 = getelementptr inbounds %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %sret_slot.i, i32 0, i32 0 | |
%4 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %inner.i, align 8 | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %4, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %3, align 8 | |
%5 = bitcast %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %sret_slot.i to i64* | |
%6 = load i64, i64* %5, align 8 | |
%7 = bitcast %"2.core::nonzero::NonZero<*const alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %1 to i64* | |
store i64 %6, i64* %7, align 8 | |
%8 = getelementptr inbounds %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>", %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %sret_slot, i32 0, i32 1 | |
%9 = bitcast %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %sret_slot to i64* | |
%10 = load i64, i64* %9, align 8 | |
ret i64 %10 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN5boxed12Box$LT$T$GT$8into_raw21h16068222734218473717E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias dereferenceable(48)) unnamed_addr #1 { | |
entry-block: | |
%b = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %b, align 8 | |
%1 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %b, align 8, !nonnull !1 | |
%2 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %b to i8* | |
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 8, i32 8, i1 false) | |
call void @"_ZN206Box$LT$alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$GT$9drop.470517h977b0f9ef3118264E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %b) | |
ret %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1 | |
} | |
define internal void @"_ZN206Box$LT$alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$GT$9drop.470517h977b0f9ef3118264E"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"**) unnamed_addr { | |
entry-block: | |
%1 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %0 | |
%2 = ptrtoint %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1 to i64 | |
%3 = icmp ne i64 %2, 2097865012304223517 | |
br i1 %3, label %cond, label %next | |
next: ; preds = %cond, %entry-block | |
ret void | |
cond: ; preds = %entry-block | |
call void @"_ZN195alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470817hb871136f7de6db0fE"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1) | |
%4 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %1 to i8* | |
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %4, i64 48, i64 8) | |
br label %next | |
} | |
define internal void @"_ZN195alloc..arc..ArcInner$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.470817hb871136f7de6db0fE"(%"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, i32 0, i32 0 | |
%2 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, i32 0, i32 1 | |
%3 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, i32 0, i32 2 | |
call void @"_ZN167core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$9drop.456417hd7350c3333b81328E"(%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %3) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @"_ZN3arc18Arc$LT$T$GT$.Clone5clone21h16193723465726072285E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>" | |
%self = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%old_size = alloca i64 | |
%1 = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%auto_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%2 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref to i8* | |
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 8, i32 8, i1 false) | |
store %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8 | |
%3 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1 | |
%4 = call dereferenceable(48) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h16251209249348122152E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %3) | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %4, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8 | |
%5 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8, !nonnull !1 | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %5, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8 | |
%6 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8, !nonnull !1 | |
%7 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %6, i32 0, i32 0 | |
%8 = call i64 @_ZN4sync6atomic11AtomicUsize9fetch_add20he94ee3077db7985ax1KE(%"2.core::sync::atomic::AtomicUsize"* dereferenceable(8) %7, i64 1, i8 0) | |
store i64 %8, i64* %old_size, align 8 | |
%9 = load i64, i64* %old_size, align 8 | |
%10 = icmp ugt i64 %9, 9223372036854775807 | |
br i1 %10, label %then-block-100986-, label %next-block | |
then-block-100986-: ; preds = %entry-block | |
call void @llvm.trap() | |
unreachable | |
next-block: ; preds = %entry-block | |
%11 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %sret_slot, i32 0, i32 0 | |
%12 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1 | |
%13 = getelementptr inbounds %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %12, i32 0, i32 0 | |
%14 = bitcast %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %13 to i8* | |
%15 = bitcast %"2.core::ptr::Shared<alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>>"* %11 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %15, i8* %14, i64 8, i32 8, i1 false) | |
%16 = bitcast %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %sret_slot to i64* | |
%17 = load i64, i64* %16, align 8 | |
ret i64 %17 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$12closure.4711E"(%closure.0* noalias nocapture dereferenceable(16)) unnamed_addr #1 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%1 = alloca %"2.core::option::Option<&'static str>" | |
%2 = alloca { i8*, i32 } | |
%__llmatch = alloca %str_slice* | |
%name = alloca %str_slice | |
%temp = alloca {} | |
%3 = alloca %"2.core::option::Option<usize>" | |
%output = alloca %"2.core::option::Option<i32>" | |
%try_result = alloca %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>" | |
%ptr = alloca %"2.core::option::Option<i32>"* | |
%4 = alloca %closure.1 | |
%5 = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>" | |
%arg = alloca %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>" | |
%6 = alloca %closure.2 | |
%7 = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* | |
%overloaded_deref = alloca %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* | |
%8 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 0 | |
%9 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 1 | |
%10 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 2 | |
invoke void @_ZN6thread6Thread4name20hd405b32c0fce958eyHbE(%"2.core::option::Option<&'static str>"* noalias nocapture sret dereferenceable(16) %1, %"1.std::thread::Thread"* noalias readonly dereferenceable(8) %8) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %entry-block | |
%11 = getelementptr inbounds %"2.core::option::Option<&'static str>", %"2.core::option::Option<&'static str>"* %1, i32 0, i32 0, i32 0 | |
%12 = load i8*, i8** %11 | |
%13 = icmp ne i8* %12, null | |
switch i1 %13, label %match_else [ | |
i1 true, label %match_case | |
] | |
unwind_custom_: ; preds = %normal-return4, %normal-return3, %join, %case_body, %entry-block | |
%14 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %14, { i8*, i32 }* %2 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%15 = load { i8*, i32 }, { i8*, i32 }* %2 | |
resume { i8*, i32 } %15 | |
clean_custom_: ; preds = %clean_custom_7, %unwind_custom_ | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %10) | |
call void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"* %8) | |
br label %resume | |
case_body: ; preds = %match_case | |
%16 = load %str_slice*, %str_slice** %__llmatch | |
%17 = bitcast %str_slice* %16 to i8* | |
%18 = bitcast %str_slice* %name to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %18, i8* %17, i64 16, i32 8, i1 false) | |
%19 = getelementptr inbounds %str_slice, %str_slice* %name, i32 0, i32 0 | |
%20 = load i8*, i8** %19 | |
%21 = getelementptr inbounds %str_slice, %str_slice* %name, i32 0, i32 1 | |
%22 = load i64, i64* %21 | |
invoke void @_ZN3sys6thread6Thread8set_name20h410908c04cbeb6afI2xE(i8* noalias nonnull readonly %20, i64 %22) | |
to label %normal-return2 unwind label %unwind_custom_ | |
case_body1: ; preds = %match_else | |
br label %join | |
match_else: ; preds = %normal-return | |
br label %case_body1 | |
match_case: ; preds = %normal-return | |
%23 = getelementptr inbounds %"2.core::option::Option<&'static str>", %"2.core::option::Option<&'static str>"* %1, i32 0, i32 0 | |
store %str_slice* %23, %str_slice** %__llmatch | |
br label %case_body | |
normal-return2: ; preds = %case_body | |
br label %join | |
join: ; preds = %case_body1, %normal-return2 | |
invoke void @_ZN3sys6thread5guard7current20h4a9742ce39c290c48fyE(%"2.core::option::Option<usize>"* noalias nocapture sret dereferenceable(16) %3) | |
to label %normal-return3 unwind label %unwind_custom_ | |
normal-return3: ; preds = %join | |
%24 = bitcast %"1.std::thread::Thread"* %8 to i64* | |
%25 = load i64, i64* %24, align 8 | |
%26 = bitcast %"1.std::thread::Thread"* %8 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %26, i8 29, i64 8, i32 8, i1 false) | |
invoke void @_ZN10sys_common11thread_info3set20h2914e7e9e0b6aca9C7sE(%"2.core::option::Option<usize>"* noalias nocapture dereferenceable(16) %3, i64 %25) | |
to label %normal-return4 unwind label %unwind_custom_ | |
normal-return4: ; preds = %normal-return3 | |
%27 = bitcast %"2.core::option::Option<i32>"* %output to { i32, [4 x i8] }* | |
%28 = bitcast { i32, [4 x i8] }* %27 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %28, i8* bitcast ({ i32, [4 x i8] }* @const4717 to i8*), i64 8, i32 4, i1 false) | |
store %"2.core::option::Option<i32>"* %output, %"2.core::option::Option<i32>"** %ptr, align 8 | |
%29 = getelementptr inbounds %closure.1, %closure.1* %4, i32 0, i32 0 | |
%30 = getelementptr inbounds %closure.1, %closure.1* %4, i32 0, i32 1 | |
%31 = load %"2.core::option::Option<i32>"*, %"2.core::option::Option<i32>"** %ptr, align 8, !nonnull !1 | |
store %"2.core::option::Option<i32>"* %31, %"2.core::option::Option<i32>"** %30, align 8 | |
%32 = bitcast %closure.1* %4 to i64* | |
%33 = load i64, i64* %32, align 8 | |
invoke void @_ZN10sys_common6unwind3try21h12466803591052006657E(%"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(16) %try_result, i64 %33) | |
to label %normal-return5 unwind label %unwind_custom_ | |
normal-return5: ; preds = %normal-return4 | |
%34 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %5 to { i64, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }* | |
%35 = getelementptr inbounds { i64, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }, { i64, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }* %34, i32 0, i32 1 | |
%36 = bitcast %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %try_result to i8* | |
%37 = bitcast %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %arg to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %37, i8* %36, i64 16, i32 8, i1 false) | |
%38 = bitcast %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %try_result to i8* | |
call void @llvm.memset.p0i8.i64(i8* %38, i8 29, i64 16, i32 8, i1 false) | |
%39 = getelementptr inbounds %closure.2, %closure.2* %6, i32 0, i32 0 | |
%40 = bitcast %"2.core::option::Option<i32>"* %output to i8* | |
%41 = bitcast %"2.core::option::Option<i32>"* %39 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %41, i8* %40, i64 8, i32 4, i1 false) | |
%42 = bitcast %closure.2* %6 to i64* | |
%43 = load i64, i64* %42, align 4 | |
invoke void @"_ZN6result24Result$LT$T$C$$u20$E$GT$3map20h1168541759438911924E"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24) %35, %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture dereferenceable(16) %arg, i64 %43) | |
to label %normal-return6 unwind label %unwind_ast_9213_ | |
normal-return6: ; preds = %normal-return5 | |
%44 = getelementptr inbounds %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>", %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %5, i32 0, i32 0 | |
store i64 1, i64* %44 | |
%45 = invoke dereferenceable(32) %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* @"_ZN3arc18Arc$LT$T$GT$.Deref5deref20h6721022230651172890E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %10) | |
to label %normal-return8 unwind label %unwind_ast_9213_ | |
unwind_ast_9213_: ; preds = %normal-return8, %normal-return6, %normal-return5 | |
%46 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %46, { i8*, i32 }* %2 | |
br label %clean_ast_9213_ | |
clean_custom_7: ; preds = %clean_ast_9213_ | |
br label %clean_custom_ | |
clean_ast_9213_: ; preds = %unwind_ast_9213_ | |
call void @"_ZN114core..result..Result$LT$$LP$$RP$$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.484617hd92d38d418bc8c30E"(%"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %try_result) | |
br label %clean_custom_7 | |
normal-return8: ; preds = %normal-return6 | |
store %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %45, %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %overloaded_deref, align 8 | |
%47 = load %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*, %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %overloaded_deref, align 8, !nonnull !1 | |
%48 = invoke %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* @"_ZN4cell19UnsafeCell$LT$T$GT$3get21h11435476738814544355E"(%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* dereferenceable(32) %47) | |
to label %normal-return9 unwind label %unwind_ast_9213_ | |
normal-return9: ; preds = %normal-return8 | |
store %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %48, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %7, align 8 | |
%49 = load %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %7, align 8 | |
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.456717he26f16b5b60edca1E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %49) | |
%50 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %5 to i8* | |
%51 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %49 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %51, i8* %50, i64 32, i32 8, i1 false) | |
call void @"_ZN114core..result..Result$LT$$LP$$RP$$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.484617hd92d38d418bc8c30E"(%"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %try_result) | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %10) | |
call void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"* %8) | |
ret void | |
} | |
declare void @_ZN6thread6Thread4name20hd405b32c0fce958eyHbE(%"2.core::option::Option<&'static str>"* noalias nocapture sret dereferenceable(16), %"1.std::thread::Thread"* noalias readonly dereferenceable(8)) unnamed_addr | |
declare void @_ZN3sys6thread6Thread8set_name20h410908c04cbeb6afI2xE(i8* noalias nonnull readonly, i64) unnamed_addr | |
declare void @_ZN10sys_common11thread_info3set20h2914e7e9e0b6aca9C7sE(%"2.core::option::Option<usize>"* noalias nocapture dereferenceable(16), i64) unnamed_addr | |
declare void @_ZN3sys6thread5guard7current20h4a9742ce39c290c48fyE(%"2.core::option::Option<usize>"* noalias nocapture sret dereferenceable(16)) unnamed_addr | |
; Function Attrs: uwtable | |
define internal void @_ZN10sys_common6unwind3try21h12466803591052006657E(%"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(16), i64) unnamed_addr #0 { | |
entry-block: | |
%f = alloca %closure.1 | |
%f1 = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" | |
%2 = bitcast %closure.1* %f to i64* | |
store i64 %1, i64* %2, align 8 | |
%3 = getelementptr inbounds %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>", %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %f1, i32 0, i32 0 | |
%4 = bitcast %closure.1* %f to i8* | |
%5 = bitcast %closure.1* %3 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 8, i32 8, i1 false) | |
%6 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %f1 to i8* | |
call void @_ZN10sys_common6unwind9inner_try20h6bca30cd9ad44959HitE(%"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(16) %0, void (i8*)* @_ZN10sys_common6unwind3try6try_fn20h1306342228717066690E, i8* %6) | |
br label %clean_ast_101473_ | |
return: ; preds = %clean_ast_101473_ | |
ret void | |
clean_ast_101473_: ; preds = %entry-block | |
br label %return | |
} | |
declare void @_ZN10sys_common6unwind9inner_try20h6bca30cd9ad44959HitE(%"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(16), void (i8*)*, i8*) unnamed_addr | |
; Function Attrs: uwtable | |
define internal void @_ZN10sys_common6unwind3try6try_fn20h1306342228717066690E(i8*) unnamed_addr #0 { | |
entry-block: | |
%opt_closure = alloca i8* | |
%opt_closure1 = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* | |
%1 = alloca %closure.1 | |
%2 = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" | |
store i8* %0, i8** %opt_closure, align 8 | |
%3 = load i8*, i8** %opt_closure, align 8 | |
%4 = bitcast i8* %3 to %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* | |
store %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %4, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %opt_closure1, align 8 | |
%5 = load %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %opt_closure1, align 8 | |
%6 = call i64 @"_ZN6option15Option$LT$T$GT$4take20h4162231751137360174E"(%"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8) %5) | |
%7 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %2 to i64* | |
store i64 %6, i64* %7, align 8 | |
%8 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %2 to i64* | |
%9 = load i64, i64* %8, align 8 | |
%10 = call i64 @"_ZN6option15Option$LT$T$GT$6unwrap21h10896307617421188658E"(i64 %9) | |
%11 = bitcast %closure.1* %1 to i64* | |
store i64 %10, i64* %11, align 8 | |
%12 = bitcast %closure.1* %1 to i64* | |
%13 = load i64, i64* %12, align 8 | |
call void @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$12closure.4737E"(i64 %13) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$12closure.4737E"(i64) unnamed_addr #1 { | |
entry-block: | |
%closure_env = alloca %closure.1 | |
%1 = alloca %"2.core::option::Option<i32>" | |
%2 = bitcast %closure.1* %closure_env to i64* | |
store i64 %0, i64* %2, align 8 | |
%3 = getelementptr inbounds %closure.1, %closure.1* %closure_env, i32 0, i32 0 | |
%4 = getelementptr inbounds %closure.1, %closure.1* %closure_env, i32 0, i32 1 | |
%5 = bitcast %"2.core::option::Option<i32>"* %1 to { i32, i32 }* | |
%6 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %5, i32 0, i32 1 | |
%7 = call i32 @"_ZN4main28_$u7b$$u7b$closure$u7d$$u7d$12closure.4832E"(%closure undef) | |
store i32 %7, i32* %6, align 4 | |
%8 = getelementptr inbounds %"2.core::option::Option<i32>", %"2.core::option::Option<i32>"* %1, i32 0, i32 0 | |
store i32 1, i32* %8 | |
%9 = bitcast %"2.core::option::Option<i32>"* %1 to i64* | |
%10 = load i64, i64* %9, align 4 | |
%11 = load %"2.core::option::Option<i32>"*, %"2.core::option::Option<i32>"** %4, align 8, !nonnull !1 | |
%12 = bitcast %"2.core::option::Option<i32>"* %11 to i64* | |
store i64 %10, i64* %12, align 4 | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @"_ZN6option15Option$LT$T$GT$6unwrap21h10896307617421188658E"(i64) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca %closure.1 | |
%self = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" | |
%val = alloca %closure.1* | |
%1 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %self to i64* | |
store i64 %0, i64* %1, align 8 | |
%2 = getelementptr inbounds %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>", %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %self, i32 0, i32 0, i32 1 | |
%3 = load %"2.core::option::Option<i32>"*, %"2.core::option::Option<i32>"** %2 | |
%4 = icmp ne %"2.core::option::Option<i32>"* %3, null | |
switch i1 %4, label %match_else [ | |
i1 true, label %match_case | |
i1 false, label %match_case2 | |
] | |
case_body: ; preds = %match_case | |
%5 = load %closure.1*, %closure.1** %val | |
%6 = bitcast %closure.1* %5 to i8* | |
%7 = bitcast %closure.1* %sret_slot to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %7, i8* %6, i64 8, i32 8, i1 false) | |
br label %join | |
case_body1: ; preds = %match_case2 | |
call void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @"_ZN6option15Option$LT$T$GT$6unwrap14_MSG_FILE_LINE20h9e0bce6065acf43cknOE") | |
unreachable | |
match_else: ; preds = %entry-block | |
unreachable | |
match_case: ; preds = %entry-block | |
%8 = getelementptr inbounds %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>", %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %self, i32 0, i32 0 | |
store %closure.1* %8, %closure.1** %val | |
br label %case_body | |
match_case2: ; preds = %entry-block | |
br label %case_body1 | |
join: ; preds = %case_body | |
%9 = bitcast %closure.1* %sret_slot to i64* | |
%10 = load i64, i64* %9, align 8 | |
ret i64 %10 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @"_ZN6option15Option$LT$T$GT$4take20h4162231751137360174E"(%"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" | |
%self = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* | |
store %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %0, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %self, align 8 | |
%1 = load %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %self, align 8, !nonnull !1 | |
%2 = load i64, i64* bitcast ({ { {}, i8* } }* @const4830 to i64*), align 8 | |
%3 = call i64 @_ZN3mem7replace20h8157034581070379059E(%"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8) %1, i64 %2) | |
%4 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %sret_slot to i64* | |
store i64 %3, i64* %4, align 8 | |
%5 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %sret_slot to i64* | |
%6 = load i64, i64* %5, align 8 | |
ret i64 %6 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN3mem7replace20h8157034581070379059E(%"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8), i64) unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" | |
%dest = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* | |
%src = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" | |
store %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %0, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %dest, align 8 | |
%2 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %src to i64* | |
store i64 %1, i64* %2, align 8 | |
%3 = load %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %dest, align 8, !nonnull !1 | |
call void @_ZN3mem4swap21h18084824041556770563E(%"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8) %3, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8) %src) | |
%4 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %src to i8* | |
%5 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %sret_slot to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 8, i32 8, i1 false) | |
%6 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %sret_slot to i64* | |
%7 = load i64, i64* %6, align 8 | |
ret i64 %7 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3mem4swap21h18084824041556770563E(%"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8), %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%x = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* | |
%y = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* | |
%t = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" | |
store %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %0, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %x, align 8 | |
store %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %1, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %y, align 8 | |
%2 = call i64 @_ZN3mem13uninitialized20h6363082438719416493E() | |
%3 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i64* | |
store i64 %2, i64* %3, align 8 | |
%4 = load %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %x, align 8, !nonnull !1 | |
%5 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i8* | |
%6 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %4 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %6, i64 8, i32 8, i1 false) | |
%7 = load %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %y, align 8, !nonnull !1 | |
%8 = load %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %x, align 8, !nonnull !1 | |
%9 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %8 to i8* | |
%10 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %7 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %9, i8* %10, i64 8, i32 8, i1 false) | |
%11 = load %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"*, %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"** %y, align 8, !nonnull !1 | |
%12 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %11 to i8* | |
%13 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %12, i8* %13, i64 8, i32 8, i1 false) | |
%14 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i64* | |
%15 = load i64, i64* %14, align 8 | |
call void @_ZN3mem6forget20h7604416672688686498E(i64 %15) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i64 @_ZN3mem13uninitialized20h6363082438719416493E() unnamed_addr #1 { | |
entry-block: | |
%sret_slot = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" | |
%0 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %sret_slot to i64* | |
%1 = load i64, i64* %0, align 8 | |
ret i64 %1 | |
} | |
; Function Attrs: uwtable | |
define internal void @_ZN3mem6forget20h7604416672688686498E(i64) unnamed_addr #0 { | |
entry-block: | |
%t = alloca %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>" | |
%1 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i64* | |
store i64 %0, i64* %1, align 8 | |
%2 = bitcast %"2.core::option::Option<[closure@DefId { krate: 1, node: DefIndex(1014) } 0:[closure@spawn-example.rs:6:32: 8:6], 1:&'static mut core::option::Option<i32>]>"* %t to i64* | |
%3 = load i64, i64* %2, align 8 | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i32 @"_ZN4main28_$u7b$$u7b$closure$u7d$$u7d$12closure.4832E"(%closure) unnamed_addr #1 { | |
entry-block: | |
ret i32 2 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN6result24Result$LT$T$C$$u20$E$GT$3map20h1168541759438911924E"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24), %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* noalias nocapture dereferenceable(16) %self, i64) unnamed_addr #1 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%op = alloca %closure.2 | |
%__llmatch = alloca {}* | |
%t = alloca {} | |
%e = alloca { i8*, void (i8*)** }* | |
%2 = alloca { i8*, i32 } | |
%3 = bitcast %closure.2* %op to i64* | |
store i64 %1, i64* %3, align 4 | |
%4 = getelementptr inbounds %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>", %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %self, i32 0, i32 0, i32 0 | |
%5 = load i8*, i8** %4 | |
%6 = icmp ne i8* %5, null | |
switch i1 %6, label %match_else [ | |
i1 false, label %match_case | |
i1 true, label %match_case2 | |
] | |
case_body: ; preds = %match_case | |
%7 = load {}*, {}** %__llmatch | |
%8 = bitcast %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, i32 }* | |
%9 = getelementptr inbounds { i8, i32 }, { i8, i32 }* %8, i32 0, i32 1 | |
%10 = bitcast %closure.2* %op to i64* | |
%11 = load i64, i64* %10, align 4 | |
%12 = invoke i32 @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$12closure.4843E"(i64 %11, {} undef) | |
to label %normal-return unwind label %unwind_custom_ | |
case_body1: ; preds = %match_case2 | |
%13 = load { i8*, void (i8*)** }*, { i8*, void (i8*)** }** %e | |
%14 = bitcast %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to { i8, { i8*, void (i8*)** } }* | |
%15 = getelementptr inbounds { i8, { i8*, void (i8*)** } }, { i8, { i8*, void (i8*)** } }* %14, i32 0, i32 1 | |
%16 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %13, i32 0, i32 0 | |
%17 = load i8*, i8** %16 | |
%18 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %13, i32 0, i32 1 | |
%19 = load void (i8*)**, void (i8*)*** %18 | |
%20 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %15, i32 0, i32 0 | |
store i8* %17, i8** %20 | |
%21 = getelementptr inbounds { i8*, void (i8*)** }, { i8*, void (i8*)** }* %15, i32 0, i32 1 | |
store void (i8*)** %19, void (i8*)*** %21 | |
%22 = bitcast { i8*, void (i8*)** }* %13 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %22, i8 29, i64 16, i32 8, i1 false) | |
%23 = getelementptr inbounds %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>", %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0 | |
store i8 1, i8* %23 | |
call void @"_ZN70Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$9drop.457317hf1dc3785f4cd9f40E"({ i8*, void (i8*)** }* %13) | |
%24 = bitcast { i8*, void (i8*)** }* %13 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %24, i8 29, i64 16, i32 8, i1 false) | |
br label %join | |
match_else: ; preds = %entry-block | |
unreachable | |
match_case: ; preds = %entry-block | |
%25 = bitcast %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %self to {}* | |
store {}* %25, {}** %__llmatch | |
br label %case_body | |
match_case2: ; preds = %entry-block | |
%26 = getelementptr inbounds %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>", %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %self, i32 0, i32 0 | |
store { i8*, void (i8*)** }* %26, { i8*, void (i8*)** }** %e | |
br label %case_body1 | |
normal-return: ; preds = %case_body | |
store i32 %12, i32* %9, align 4 | |
%27 = getelementptr inbounds %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>", %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0 | |
store i8 0, i8* %27 | |
br label %join | |
unwind_custom_: ; preds = %case_body | |
%28 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %28, { i8*, i32 }* %2 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%29 = load { i8*, i32 }, { i8*, i32 }* %2 | |
resume { i8*, i32 } %29 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN114core..result..Result$LT$$LP$$RP$$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.484617hd92d38d418bc8c30E"(%"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %self) | |
br label %resume | |
join: ; preds = %case_body1, %normal-return | |
call void @"_ZN114core..result..Result$LT$$LP$$RP$$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.484617hd92d38d418bc8c30E"(%"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %self) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i32 @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$12closure.4843E"(i64, {}) unnamed_addr #1 { | |
entry-block: | |
%2 = alloca {} | |
%closure_env = alloca %closure.2 | |
%3 = bitcast %closure.2* %closure_env to i64* | |
store i64 %0, i64* %3, align 4 | |
%4 = getelementptr inbounds %closure.2, %closure.2* %closure_env, i32 0, i32 0 | |
%5 = bitcast %"2.core::option::Option<i32>"* %4 to i64* | |
%6 = load i64, i64* %5, align 4 | |
%7 = call i32 @"_ZN6option15Option$LT$T$GT$6unwrap20h7370506588511907268E"(i64 %6) | |
ret i32 %7 | |
} | |
define internal void @"_ZN114core..result..Result$LT$$LP$$RP$$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.484617hd92d38d418bc8c30E"(%"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>", %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0, i32 0 | |
%2 = load i8*, i8** %1 | |
%3 = icmp ne i8* %2, null | |
switch i1 %3, label %enum-iter-ret-void [ | |
i1 false, label %enum-iter-variant-0 | |
i1 true, label %enum-iter-variant-1 | |
] | |
enum-iter-ret-void: ; preds = %entry-block | |
ret void | |
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0 | |
ret void | |
enum-iter-variant-0: ; preds = %entry-block | |
%4 = bitcast %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %0 to {}* | |
br label %enum-iter-next | |
enum-iter-variant-1: ; preds = %entry-block | |
%5 = getelementptr inbounds %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>", %"2.core::result::Result<(), Box<core::any::Any + Send + 'static>>"* %0, i32 0, i32 0 | |
call void @"_ZN70Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$9drop.457317hf1dc3785f4cd9f40E"({ i8*, void (i8*)** }* %5) | |
br label %enum-iter-next | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal i32 @"_ZN6option15Option$LT$T$GT$6unwrap20h7370506588511907268E"(i64) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"2.core::option::Option<i32>" | |
%__llmatch = alloca i32* | |
%val = alloca i32 | |
%1 = bitcast %"2.core::option::Option<i32>"* %self to i64* | |
store i64 %0, i64* %1, align 4 | |
%2 = getelementptr inbounds %"2.core::option::Option<i32>", %"2.core::option::Option<i32>"* %self, i32 0, i32 0 | |
%3 = load i32, i32* %2, !range !10 | |
switch i32 %3, label %match_else [ | |
i32 1, label %match_case | |
i32 0, label %match_case2 | |
] | |
case_body: ; preds = %match_case | |
%4 = load i32*, i32** %__llmatch | |
%5 = load i32, i32* %4, align 4 | |
store i32 %5, i32* %val, align 4 | |
%6 = load i32, i32* %val, align 4 | |
br label %join | |
case_body1: ; preds = %match_case2 | |
call void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @"_ZN6option15Option$LT$T$GT$6unwrap14_MSG_FILE_LINE20h9e0bce6065acf43cknOE") | |
unreachable | |
match_else: ; preds = %entry-block | |
unreachable | |
match_case: ; preds = %entry-block | |
%7 = bitcast %"2.core::option::Option<i32>"* %self to { i32, i32 }* | |
%8 = getelementptr inbounds { i32, i32 }, { i32, i32 }* %7, i32 0, i32 1 | |
store i32* %8, i32** %__llmatch | |
br label %case_body | |
match_case2: ; preds = %entry-block | |
br label %case_body1 | |
join: ; preds = %case_body | |
ret i32 %6 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* @"_ZN4cell19UnsafeCell$LT$T$GT$3get21h11435476738814544355E"(%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* dereferenceable(32)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* | |
store %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %0, %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %self, align 8 | |
%1 = load %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*, %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %self, align 8, !nonnull !1 | |
%2 = getelementptr inbounds %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>", %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %1, i32 0, i32 0 | |
ret %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %2 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal dereferenceable(32) %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* @"_ZN3arc18Arc$LT$T$GT$.Deref5deref20h6721022230651172890E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%1 = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%auto_deref = alloca %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* | |
%2 = bitcast %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref to i8* | |
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 8, i32 8, i1 false) | |
store %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %0, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8 | |
%3 = load %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %self, align 8, !nonnull !1 | |
%4 = call dereferenceable(48) %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* @"_ZN3arc12Arc$LT$T$GT$5inner21h16251209249348122152E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %3) | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %4, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8 | |
%5 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %1, align 8, !nonnull !1 | |
store %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %5, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8 | |
%6 = load %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"*, %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"** %auto_deref, align 8, !nonnull !1 | |
%7 = getelementptr inbounds %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>", %"5.alloc::arc::ArcInner<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %6, i32 0, i32 2 | |
ret %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %7 | |
} | |
declare void @_ZN3sys6thread6Thread3new20hfd8e70603581a437rTxE(%"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* noalias nocapture sret dereferenceable(24), i64, i8* noalias nonnull, void (i8*)** nonnull) unnamed_addr | |
define internal void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.485217h6242f803e6a3193cE"(%closure.0*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 0 | |
call void @_ZN19std..thread..Thread9drop.421917h29edfcd73f1bccb0E(%"1.std::thread::Thread"* %1) | |
%2 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 1 | |
%3 = getelementptr inbounds %closure.0, %closure.0* %0, i32 0, i32 2 | |
call void @"_ZN190alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$9drop.456117h6e109bf0f45fdfbcE"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* %3) | |
ret void | |
} | |
; Function Attrs: uwtable | |
define internal void @"_ZN5boxed16F.FnBox$LT$A$GT$8call_box21h17736015687154337904E"(%closure.0* noalias dereferenceable(16), {}) unnamed_addr #0 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%self = alloca %closure.0* | |
%args = alloca {} | |
%arg = alloca %closure.0 | |
%2 = alloca { i8*, i32 } | |
store %closure.0* %0, %closure.0** %self, align 8 | |
%3 = load %closure.0*, %closure.0** %self, align 8, !nonnull !1 | |
%4 = bitcast %closure.0* %3 to i8* | |
%5 = bitcast %closure.0* %arg to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 16, i32 8, i1 false) | |
%6 = bitcast %closure.0* %3 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 16, i32 8, i1 false) | |
invoke void @"_ZN3std6thread7Builder5spawn28_$u7b$$u7b$closure$u7d$$u7d$12closure.4711E"(%closure.0* noalias nocapture dereferenceable(16) %arg) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %entry-block | |
call void @"_ZN399Box$LT$$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$$GT$9drop.485617hdd018ef28fbbf137E"(%closure.0** %self) | |
ret void | |
unwind_custom_: ; preds = %entry-block | |
%7 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %7, { i8*, i32 }* %2 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%8 = load { i8*, i32 }, { i8*, i32 }* %2 | |
resume { i8*, i32 } %8 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN399Box$LT$$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$$GT$9drop.485617hdd018ef28fbbf137E"(%closure.0** %self) | |
br label %resume | |
} | |
define internal void @"_ZN399Box$LT$$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$$GT$9drop.485617hdd018ef28fbbf137E"(%closure.0**) unnamed_addr { | |
entry-block: | |
%1 = load %closure.0*, %closure.0** %0 | |
%2 = ptrtoint %closure.0* %1 to i64 | |
%3 = icmp ne i64 %2, 2097865012304223517 | |
br i1 %3, label %cond, label %next | |
next: ; preds = %cond, %entry-block | |
ret void | |
cond: ; preds = %entry-block | |
call void @"_ZN389_$u5b$closure$SP$DefId$u20$$u7b$$u20$krate.$u20$1$C$$u20$node.$u20$DefIndex$LP$1009$RP$$u20$$u7d$$u20$0.std..thread..Thread$C$$u20$1.$u5b$closure$SP$spawn.example.rs.6.32.$u20$8.6$u5d$$C$$u20$2.alloc..arc..Arc$LT$core..cell..UnsafeCell$LT$core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$$GT$$GT$$u5d$9drop.485217h6242f803e6a3193cE"(%closure.0* %1) | |
%4 = bitcast %closure.0* %1 to i8* | |
call void @_ZN4heap13exchange_free20he565b50d5beed3f9ngaE(i8* %4, i64 16, i64 8) | |
br label %next | |
} | |
; Function Attrs: uwtable | |
define internal void @"_ZN7convert15T.From$LT$T$GT$4from21h12668158018310012419E"(%"1.std::io::error::Error"* noalias nocapture sret dereferenceable(16), %"1.std::io::error::Error"* noalias nocapture dereferenceable(16) %t) unnamed_addr #0 { | |
entry-block: | |
%1 = bitcast %"1.std::io::error::Error"* %t to i8* | |
%2 = bitcast %"1.std::io::error::Error"* %0 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %2, i8* %1, i64 16, i32 8, i1 false) | |
%3 = bitcast %"1.std::io::error::Error"* %t to i8* | |
call void @llvm.memset.p0i8.i64(i8* %3, i8 29, i64 16, i32 8, i1 false) | |
call void @_ZN21std..io..error..Error9drop.459117h0f4948ead3fac74eE(%"1.std::io::error::Error"* %t) | |
ret void | |
} | |
define internal void @"_ZN81core..result..Result$LT$std..sys..thread..Thread$C$$u20$std..io..error..Error$GT$9drop.486117h1f3bc4c9c9e07abcE"(%"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"*) unnamed_addr { | |
entry-block: | |
%1 = getelementptr inbounds %"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>", %"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %0, i32 0, i32 0 | |
%2 = load i64, i64* %1 | |
switch i64 %2, label %enum-iter-ret-void [ | |
i64 0, label %enum-iter-variant-0 | |
i64 1, label %enum-iter-variant-1 | |
] | |
enum-iter-ret-void: ; preds = %entry-block | |
ret void | |
enum-iter-next: ; preds = %enum-iter-variant-1, %enum-iter-variant-0 | |
ret void | |
enum-iter-variant-0: ; preds = %entry-block | |
%3 = bitcast %"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %0 to { i64, %"1.std::sys::thread::Thread" }* | |
%4 = getelementptr inbounds { i64, %"1.std::sys::thread::Thread" }, { i64, %"1.std::sys::thread::Thread" }* %3, i32 0, i32 1 | |
call void @_ZN24std..sys..thread..Thread9drop.419917h5b8cd2efe3ae67d8E(%"1.std::sys::thread::Thread"* %4) | |
br label %enum-iter-next | |
enum-iter-variant-1: ; preds = %entry-block | |
%5 = bitcast %"2.core::result::Result<std::sys::thread::Thread, std::io::error::Error>"* %0 to { i64, %"1.std::io::error::Error" }* | |
%6 = getelementptr inbounds { i64, %"1.std::io::error::Error" }, { i64, %"1.std::io::error::Error" }* %5, i32 0, i32 1 | |
call void @_ZN21std..io..error..Error9drop.459117h0f4948ead3fac74eE(%"1.std::io::error::Error"* %6) | |
br label %enum-iter-next | |
} | |
declare void @_ZN6thread7Builder3new20hd04be2c79ec19f69ezbE(%"1.std::thread::Builder"* noalias nocapture sret dereferenceable(40)) unnamed_addr | |
; Function Attrs: uwtable | |
define internal void @"_ZN6thread19JoinHandle$LT$T$GT$4join21h11682743565137392356E"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24), %"1.std::thread::JoinHandle<i32>"* noalias nocapture dereferenceable(40) %self) unnamed_addr #0 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%1 = alloca { i8*, i32 } | |
%2 = getelementptr inbounds %"1.std::thread::JoinHandle<i32>", %"1.std::thread::JoinHandle<i32>"* %self, i32 0, i32 0 | |
invoke void @"_ZN6thread18JoinInner$LT$T$GT$4join21h12827666485469152210E"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24) %0, %"1.std::thread::JoinInner<i32>"* dereferenceable(40) %2) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %entry-block | |
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.419017h4035594c4205a9a2E"(%"1.std::thread::JoinHandle<i32>"* %self) | |
ret void | |
unwind_custom_: ; preds = %entry-block | |
%3 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %3, { i8*, i32 }* %1 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%4 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %4 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN34std..thread..JoinHandle$LT$i32$GT$9drop.419017h4035594c4205a9a2E"(%"1.std::thread::JoinHandle<i32>"* %self) | |
br label %resume | |
} | |
; Function Attrs: uwtable | |
define internal void @"_ZN6thread18JoinInner$LT$T$GT$4join21h12827666485469152210E"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24), %"1.std::thread::JoinInner<i32>"* dereferenceable(40)) unnamed_addr #0 { | |
entry-block: | |
%self = alloca %"1.std::thread::JoinInner<i32>"* | |
%2 = alloca %"1.std::sys::thread::Thread" | |
%3 = alloca %"2.core::option::Option<std::sys::thread::Thread>" | |
%4 = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>" | |
%5 = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* | |
%overloaded_deref = alloca %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* | |
store %"1.std::thread::JoinInner<i32>"* %1, %"1.std::thread::JoinInner<i32>"** %self, align 8 | |
%6 = load %"1.std::thread::JoinInner<i32>"*, %"1.std::thread::JoinInner<i32>"** %self, align 8, !nonnull !1 | |
%7 = getelementptr inbounds %"1.std::thread::JoinInner<i32>", %"1.std::thread::JoinInner<i32>"* %6, i32 0, i32 0 | |
call void @"_ZN6option15Option$LT$T$GT$4take21h14270089180734247991E"(%"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24) %3, %"2.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24) %7) | |
%8 = call i128 @"_ZN6option15Option$LT$T$GT$6unwrap20h5495264448180834250E"(%"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %3) | |
%9 = bitcast %"1.std::sys::thread::Thread"* %2 to i128* | |
store i128 %8, i128* %9, align 8 | |
%10 = bitcast %"1.std::sys::thread::Thread"* %2 to i128* | |
%11 = load i128, i128* %10, align 8 | |
call void @_ZN3sys6thread6Thread4join20h55cddc6f83ebed72r5xE(i128 %11) | |
%12 = load %"1.std::thread::JoinInner<i32>"*, %"1.std::thread::JoinInner<i32>"** %self, align 8, !nonnull !1 | |
%13 = getelementptr inbounds %"1.std::thread::JoinInner<i32>", %"1.std::thread::JoinInner<i32>"* %12, i32 0, i32 2 | |
%14 = getelementptr inbounds %"1.std::thread::Packet<i32>", %"1.std::thread::Packet<i32>"* %13, i32 0, i32 0 | |
%15 = call dereferenceable(32) %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* @"_ZN3arc18Arc$LT$T$GT$.Deref5deref20h6721022230651172890E"(%"5.alloc::arc::Arc<core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>>"* noalias readonly dereferenceable(8) %14) | |
store %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* %15, %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %overloaded_deref, align 8 | |
%16 = load %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"*, %"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"** %overloaded_deref, align 8, !nonnull !1 | |
%17 = call %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* @"_ZN4cell19UnsafeCell$LT$T$GT$3get21h11435476738814544355E"(%"2.core::cell::UnsafeCell<core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>>"* dereferenceable(32) %16) | |
store %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %17, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %5, align 8 | |
%18 = load %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %5, align 8 | |
call void @"_ZN6option15Option$LT$T$GT$4take21h16940523288365809931E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32) %4, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32) %18) | |
call void @"_ZN6option15Option$LT$T$GT$6unwrap21h10865562211303294741E"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24) %0, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %4) | |
ret void | |
} | |
declare void @_ZN3sys6thread6Thread4join20h55cddc6f83ebed72r5xE(i128) unnamed_addr | |
; Function Attrs: inlinehint uwtable | |
define internal i128 @"_ZN6option15Option$LT$T$GT$6unwrap20h5495264448180834250E"(%"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %self) unnamed_addr #1 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%sret_slot = alloca %"1.std::sys::thread::Thread" | |
%val = alloca %"1.std::sys::thread::Thread"* | |
%0 = alloca { i8*, i32 } | |
%1 = getelementptr inbounds %"2.core::option::Option<std::sys::thread::Thread>", %"2.core::option::Option<std::sys::thread::Thread>"* %self, i32 0, i32 0 | |
%2 = load i64, i64* %1, !range !2 | |
switch i64 %2, label %match_else [ | |
i64 1, label %match_case | |
i64 0, label %match_case2 | |
] | |
case_body: ; preds = %match_case | |
%3 = load %"1.std::sys::thread::Thread"*, %"1.std::sys::thread::Thread"** %val | |
%4 = bitcast %"1.std::sys::thread::Thread"* %3 to i8* | |
%5 = bitcast %"1.std::sys::thread::Thread"* %sret_slot to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 16, i32 8, i1 false) | |
%6 = bitcast %"1.std::sys::thread::Thread"* %3 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 16, i32 8, i1 false) | |
call void @_ZN24std..sys..thread..Thread9drop.419917h5b8cd2efe3ae67d8E(%"1.std::sys::thread::Thread"* %3) | |
%7 = bitcast %"1.std::sys::thread::Thread"* %3 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %7, i8 29, i64 16, i32 8, i1 false) | |
br label %join | |
case_body1: ; preds = %match_case2 | |
invoke void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @"_ZN6option15Option$LT$T$GT$6unwrap14_MSG_FILE_LINE20h9e0bce6065acf43cknOE") | |
to label %normal-return unwind label %unwind_custom_ | |
match_else: ; preds = %entry-block | |
unreachable | |
match_case: ; preds = %entry-block | |
%8 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %self to { i64, %"1.std::sys::thread::Thread" }* | |
%9 = getelementptr inbounds { i64, %"1.std::sys::thread::Thread" }, { i64, %"1.std::sys::thread::Thread" }* %8, i32 0, i32 1 | |
store %"1.std::sys::thread::Thread"* %9, %"1.std::sys::thread::Thread"** %val | |
br label %case_body | |
match_case2: ; preds = %entry-block | |
br label %case_body1 | |
normal-return: ; preds = %case_body1 | |
unreachable | |
unwind_custom_: ; preds = %case_body1 | |
%10 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %10, { i8*, i32 }* %0 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%11 = load { i8*, i32 }, { i8*, i32 }* %0 | |
resume { i8*, i32 } %11 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.419617h3d14b30167ff51f9E"(%"2.core::option::Option<std::sys::thread::Thread>"* %self) | |
br label %resume | |
join: ; preds = %case_body | |
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.419617h3d14b30167ff51f9E"(%"2.core::option::Option<std::sys::thread::Thread>"* %self) | |
%12 = bitcast %"1.std::sys::thread::Thread"* %sret_slot to i128* | |
%13 = load i128, i128* %12, align 8 | |
ret i128 %13 | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN6option15Option$LT$T$GT$4take21h14270089180734247991E"(%"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24), %"2.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"2.core::option::Option<std::sys::thread::Thread>"* | |
%const = alloca %"2.core::option::Option<std::sys::thread::Thread>" | |
store %"2.core::option::Option<std::sys::thread::Thread>"* %1, %"2.core::option::Option<std::sys::thread::Thread>"** %self, align 8 | |
%2 = load %"2.core::option::Option<std::sys::thread::Thread>"*, %"2.core::option::Option<std::sys::thread::Thread>"** %self, align 8, !nonnull !1 | |
%3 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %const to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %3, i8* bitcast ({ i64, [16 x i8] }* @const4870 to i8*), i64 24, i32 8, i1 false) | |
call void @_ZN3mem7replace19h484396856383026124E(%"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24) %0, %"2.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24) %2, %"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %const) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3mem7replace19h484396856383026124E(%"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24), %"2.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24), %"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %src) unnamed_addr #1 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%dest = alloca %"2.core::option::Option<std::sys::thread::Thread>"* | |
%2 = alloca { i8*, i32 } | |
store %"2.core::option::Option<std::sys::thread::Thread>"* %1, %"2.core::option::Option<std::sys::thread::Thread>"** %dest, align 8 | |
%3 = load %"2.core::option::Option<std::sys::thread::Thread>"*, %"2.core::option::Option<std::sys::thread::Thread>"** %dest, align 8, !nonnull !1 | |
invoke void @_ZN3mem4swap21h12509685678426696215E(%"2.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24) %3, %"2.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24) %src) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %entry-block | |
%4 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %src to i8* | |
%5 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %0 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 24, i32 8, i1 false) | |
%6 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %src to i8* | |
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 24, i32 8, i1 false) | |
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.419617h3d14b30167ff51f9E"(%"2.core::option::Option<std::sys::thread::Thread>"* %src) | |
ret void | |
unwind_custom_: ; preds = %entry-block | |
%7 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %7, { i8*, i32 }* %2 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%8 = load { i8*, i32 }, { i8*, i32 }* %2 | |
resume { i8*, i32 } %8 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.419617h3d14b30167ff51f9E"(%"2.core::option::Option<std::sys::thread::Thread>"* %src) | |
br label %resume | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3mem4swap21h12509685678426696215E(%"2.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24), %"2.core::option::Option<std::sys::thread::Thread>"* dereferenceable(24)) unnamed_addr #1 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%x = alloca %"2.core::option::Option<std::sys::thread::Thread>"* | |
%y = alloca %"2.core::option::Option<std::sys::thread::Thread>"* | |
%t = alloca %"2.core::option::Option<std::sys::thread::Thread>" | |
%arg = alloca %"2.core::option::Option<std::sys::thread::Thread>" | |
%2 = alloca { i8*, i32 } | |
store %"2.core::option::Option<std::sys::thread::Thread>"* %0, %"2.core::option::Option<std::sys::thread::Thread>"** %x, align 8 | |
store %"2.core::option::Option<std::sys::thread::Thread>"* %1, %"2.core::option::Option<std::sys::thread::Thread>"** %y, align 8 | |
call void @_ZN3mem13uninitialized20h6173170729105443562E(%"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24) %t) | |
%3 = load %"2.core::option::Option<std::sys::thread::Thread>"*, %"2.core::option::Option<std::sys::thread::Thread>"** %x, align 8, !nonnull !1 | |
%4 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %t to i8* | |
%5 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %3 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %4, i8* %5, i64 24, i32 8, i1 false) | |
%6 = load %"2.core::option::Option<std::sys::thread::Thread>"*, %"2.core::option::Option<std::sys::thread::Thread>"** %y, align 8, !nonnull !1 | |
%7 = load %"2.core::option::Option<std::sys::thread::Thread>"*, %"2.core::option::Option<std::sys::thread::Thread>"** %x, align 8, !nonnull !1 | |
%8 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %7 to i8* | |
%9 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %6 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %8, i8* %9, i64 24, i32 8, i1 false) | |
%10 = load %"2.core::option::Option<std::sys::thread::Thread>"*, %"2.core::option::Option<std::sys::thread::Thread>"** %y, align 8, !nonnull !1 | |
%11 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %10 to i8* | |
%12 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %t to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %11, i8* %12, i64 24, i32 8, i1 false) | |
%13 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %t to i8* | |
%14 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %arg to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %14, i8* %13, i64 24, i32 8, i1 false) | |
%15 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %t to i8* | |
call void @llvm.memset.p0i8.i64(i8* %15, i8 29, i64 24, i32 8, i1 false) | |
invoke void @_ZN3mem6forget20h4857370862858940521E(%"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %arg) | |
to label %normal-return unwind label %unwind_ast_101602_ | |
normal-return: ; preds = %entry-block | |
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.419617h3d14b30167ff51f9E"(%"2.core::option::Option<std::sys::thread::Thread>"* %t) | |
ret void | |
unwind_ast_101602_: ; preds = %entry-block | |
%16 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %16, { i8*, i32 }* %2 | |
br label %clean_ast_101602_ | |
resume: ; preds = %clean_ast_101602_ | |
%17 = load { i8*, i32 }, { i8*, i32 }* %2 | |
resume { i8*, i32 } %17 | |
clean_ast_101602_: ; preds = %unwind_ast_101602_ | |
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.419617h3d14b30167ff51f9E"(%"2.core::option::Option<std::sys::thread::Thread>"* %t) | |
br label %resume | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3mem13uninitialized20h6173170729105443562E(%"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture sret dereferenceable(24)) unnamed_addr #1 { | |
entry-block: | |
ret void | |
} | |
; Function Attrs: uwtable | |
define internal void @_ZN3mem6forget20h4857370862858940521E(%"2.core::option::Option<std::sys::thread::Thread>"* noalias nocapture dereferenceable(24) %t) unnamed_addr #0 { | |
entry-block: | |
%arg = alloca %"2.core::option::Option<std::sys::thread::Thread>" | |
%0 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %t to i8* | |
%1 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %arg to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* %0, i64 24, i32 8, i1 false) | |
%2 = bitcast %"2.core::option::Option<std::sys::thread::Thread>"* %t to i8* | |
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 24, i32 8, i1 false) | |
call void @"_ZN52core..option..Option$LT$std..sys..thread..Thread$GT$9drop.419617h3d14b30167ff51f9E"(%"2.core::option::Option<std::sys::thread::Thread>"* %t) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN6option15Option$LT$T$GT$6unwrap21h10865562211303294741E"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* noalias nocapture sret dereferenceable(24), %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %self) unnamed_addr #1 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%val = alloca %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* | |
%1 = alloca { i8*, i32 } | |
%2 = getelementptr inbounds %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>", %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %self, i32 0, i32 0 | |
%3 = load i64, i64* %2, !range !2 | |
switch i64 %3, label %match_else [ | |
i64 1, label %match_case | |
i64 0, label %match_case2 | |
] | |
case_body: ; preds = %match_case | |
%4 = load %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"*, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"** %val | |
%5 = bitcast %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %4 to i8* | |
%6 = bitcast %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %0 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %6, i8* %5, i64 24, i32 8, i1 false) | |
%7 = bitcast %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %4 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %7, i8 29, i64 24, i32 8, i1 false) | |
call void @"_ZN109core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$9drop.457017h65983c191404b38bE"(%"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %4) | |
%8 = bitcast %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %4 to i8* | |
call void @llvm.memset.p0i8.i64(i8* %8, i8 29, i64 24, i32 8, i1 false) | |
br label %join | |
case_body1: ; preds = %match_case2 | |
invoke void @_ZN9panicking5panic20he1e34a74b1285647DXLE({ %str_slice, %str_slice, i32 }* noalias readonly dereferenceable(40) @"_ZN6option15Option$LT$T$GT$6unwrap14_MSG_FILE_LINE20h9e0bce6065acf43cknOE") | |
to label %normal-return unwind label %unwind_custom_ | |
match_else: ; preds = %entry-block | |
unreachable | |
match_case: ; preds = %entry-block | |
%9 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %self to { i64, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }* | |
%10 = getelementptr inbounds { i64, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }, { i64, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>" }* %9, i32 0, i32 1 | |
store %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"* %10, %"2.core::result::Result<i32, Box<core::any::Any + Send + 'static>>"** %val | |
br label %case_body | |
match_case2: ; preds = %entry-block | |
br label %case_body1 | |
normal-return: ; preds = %case_body1 | |
unreachable | |
unwind_custom_: ; preds = %case_body1 | |
%11 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %11, { i8*, i32 }* %1 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%12 = load { i8*, i32 }, { i8*, i32 }* %1 | |
resume { i8*, i32 } %12 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.456717he26f16b5b60edca1E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %self) | |
br label %resume | |
join: ; preds = %case_body | |
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.456717he26f16b5b60edca1E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %self) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @"_ZN6option15Option$LT$T$GT$4take21h16940523288365809931E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32), %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32)) unnamed_addr #1 { | |
entry-block: | |
%self = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* | |
%const = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>" | |
store %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %1, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %self, align 8 | |
%2 = load %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %self, align 8, !nonnull !1 | |
%3 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %const to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %3, i8* bitcast ({ i64, [24 x i8] }* @const4871 to i8*), i64 32, i32 8, i1 false) | |
call void @_ZN3mem7replace21h18087666909015374402E(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32) %0, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32) %2, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %const) | |
ret void | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3mem7replace21h18087666909015374402E(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32), %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32), %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %src) unnamed_addr #1 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%dest = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* | |
%2 = alloca { i8*, i32 } | |
store %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %1, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %dest, align 8 | |
%3 = load %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %dest, align 8, !nonnull !1 | |
invoke void @_ZN3mem4swap20h6803638237795650003E(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32) %3, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32) %src) | |
to label %normal-return unwind label %unwind_custom_ | |
normal-return: ; preds = %entry-block | |
%4 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %src to i8* | |
%5 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %0 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %5, i8* %4, i64 32, i32 8, i1 false) | |
%6 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %src to i8* | |
call void @llvm.memset.p0i8.i64(i8* %6, i8 29, i64 32, i32 8, i1 false) | |
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.456717he26f16b5b60edca1E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %src) | |
ret void | |
unwind_custom_: ; preds = %entry-block | |
%7 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %7, { i8*, i32 }* %2 | |
br label %clean_custom_ | |
resume: ; preds = %clean_custom_ | |
%8 = load { i8*, i32 }, { i8*, i32 }* %2 | |
resume { i8*, i32 } %8 | |
clean_custom_: ; preds = %unwind_custom_ | |
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.456717he26f16b5b60edca1E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %src) | |
br label %resume | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3mem4swap20h6803638237795650003E(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32), %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* dereferenceable(32)) unnamed_addr #1 personality i32 (i32, i32, i64, %"1.std::sys_common::libunwind::_Unwind_Exception"*, %"1.std::sys_common::libunwind::_Unwind_Context"*)* @rust_eh_personality { | |
entry-block: | |
%x = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* | |
%y = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* | |
%t = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>" | |
%arg = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>" | |
%2 = alloca { i8*, i32 } | |
store %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %0, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %x, align 8 | |
store %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %1, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %y, align 8 | |
call void @_ZN3mem13uninitialized21h16093885106019947627E(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32) %t) | |
%3 = load %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %x, align 8, !nonnull !1 | |
%4 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8* | |
%5 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %3 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %4, i8* %5, i64 32, i32 8, i1 false) | |
%6 = load %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %y, align 8, !nonnull !1 | |
%7 = load %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %x, align 8, !nonnull !1 | |
%8 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %7 to i8* | |
%9 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %6 to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %8, i8* %9, i64 32, i32 8, i1 false) | |
%10 = load %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"*, %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"** %y, align 8, !nonnull !1 | |
%11 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %10 to i8* | |
%12 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %11, i8* %12, i64 32, i32 8, i1 false) | |
%13 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8* | |
%14 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %arg to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %14, i8* %13, i64 32, i32 8, i1 false) | |
%15 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8* | |
call void @llvm.memset.p0i8.i64(i8* %15, i8 29, i64 32, i32 8, i1 false) | |
invoke void @_ZN3mem6forget21h10110782875855699555E(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %arg) | |
to label %normal-return unwind label %unwind_ast_101602_ | |
normal-return: ; preds = %entry-block | |
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.456717he26f16b5b60edca1E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t) | |
ret void | |
unwind_ast_101602_: ; preds = %entry-block | |
%16 = landingpad { i8*, i32 } | |
cleanup | |
store { i8*, i32 } %16, { i8*, i32 }* %2 | |
br label %clean_ast_101602_ | |
resume: ; preds = %clean_ast_101602_ | |
%17 = load { i8*, i32 }, { i8*, i32 }* %2 | |
resume { i8*, i32 } %17 | |
clean_ast_101602_: ; preds = %unwind_ast_101602_ | |
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.456717he26f16b5b60edca1E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t) | |
br label %resume | |
} | |
; Function Attrs: inlinehint uwtable | |
define internal void @_ZN3mem13uninitialized21h16093885106019947627E(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture sret dereferenceable(32)) unnamed_addr #1 { | |
entry-block: | |
ret void | |
} | |
; Function Attrs: uwtable | |
define internal void @_ZN3mem6forget21h10110782875855699555E(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* noalias nocapture dereferenceable(32) %t) unnamed_addr #0 { | |
entry-block: | |
%arg = alloca %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>" | |
%0 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8* | |
%1 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %arg to i8* | |
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1, i8* %0, i64 32, i32 8, i1 false) | |
%2 = bitcast %"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t to i8* | |
call void @llvm.memset.p0i8.i64(i8* %2, i8 29, i64 32, i32 8, i1 false) | |
call void @"_ZN137core..option..Option$LT$core..result..Result$LT$i32$C$$u20$Box$LT$core..any..Any$u20$$u2b$$u20$Send$u20$$u2b$$u20$$u27$static$GT$$GT$$GT$9drop.456717he26f16b5b60edca1E"(%"2.core::option::Option<core::result::Result<i32, Box<core::any::Any + Send + 'static>>>"* %t) | |
ret void | |
} | |
declare void @_ZN2io5stdio6_print20h6af5e30262835244TghE(%"2.core::fmt::Arguments"* noalias nocapture dereferenceable(48)) unnamed_addr | |
; Function Attrs: uwtable | |
define internal void @"_ZN3fmt24ArgumentV1$LT$$u27$a$GT$3new20h7413601074852004310E"(%"2.core::fmt::ArgumentV1"* noalias nocapture sret dereferenceable(16), i32* noalias readonly dereferenceable(4), i8 (i32*, %"2.core::fmt::Formatter"*)*) unnamed_addr #0 { | |
entry-block: | |
%x = alloca i32* | |
%f = alloca i8 (i32*, %"2.core::fmt::Formatter"*)* | |
store i32* %1, i32** %x, align 8 | |
store i8 (i32*, %"2.core::fmt::Formatter"*)* %2, i8 (i32*, %"2.core::fmt::Formatter"*)** %f, align 8 | |
%3 = getelementptr inbounds %"2.core::fmt::ArgumentV1", %"2.core::fmt::ArgumentV1"* %0, i32 0, i32 1 | |
%4 = load i8 (i32*, %"2.core::fmt::Formatter"*)*, i8 (i32*, %"2.core::fmt::Formatter"*)** %f, align 8 | |
%5 = bitcast i8 (i32*, %"2.core::fmt::Formatter"*)* %4 to i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* | |
store i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)* %5, i8 (%"2.core::fmt::Void"*, %"2.core::fmt::Formatter"*)** %3 | |
%6 = getelementptr inbounds %"2.core::fmt::ArgumentV1", %"2.core::fmt::ArgumentV1"* %0, i32 0, i32 0 | |
%7 = load i32*, i32** %x, align 8, !nonnull !1 | |
%8 = bitcast i32* %7 to %"2.core::fmt::Void"* | |
store %"2.core::fmt::Void"* %8, %"2.core::fmt::Void"** %6 | |
ret void | |
} | |
declare i8 @_ZN3fmt3num16i32.fmt..Display3fmt20hc117e0f17c173be6gIVE(i32* noalias readonly dereferenceable(4), %"2.core::fmt::Formatter"* dereferenceable(96)) unnamed_addr | |
define i64 @main(i64, i8**) unnamed_addr { | |
top: | |
%2 = call i64 @_ZN2rt10lang_start20h12a24d0358e0b426GVyE(i8* bitcast (void ()* @_ZN4main20hee0a51470adedc0feaaE to i8*), i64 %0, i8** %1) | |
ret i64 %2 | |
} | |
declare i64 @_ZN2rt10lang_start20h12a24d0358e0b426GVyE(i8*, i64, i8**) unnamed_addr | |
attributes #0 = { uwtable } | |
attributes #1 = { inlinehint uwtable } | |
attributes #2 = { argmemonly nounwind } | |
attributes #3 = { nounwind } | |
attributes #4 = { cold noinline noreturn } | |
attributes #5 = { noinline uwtable } | |
attributes #6 = { nounwind readnone } | |
attributes #7 = { cold noinline noreturn uwtable } | |
attributes #8 = { noreturn nounwind } | |
!0 = !{i8 0, i8 2} | |
!1 = !{} | |
!2 = !{i64 0, i64 2} | |
!3 = !{i8 0, i8 5} | |
!4 = !{!5} | |
!5 = distinct !{!5, !6, !"_ZN3ptr4read21h14041778955621802318E: argument 0"} | |
!6 = distinct !{!6, !"_ZN3ptr4read21h14041778955621802318E"} | |
!7 = !{!8} | |
!8 = distinct !{!8, !9, !"_ZN5boxed12Box$LT$T$GT$3new20h9153685487804326652E: %x"} | |
!9 = distinct !{!9, !"_ZN5boxed12Box$LT$T$GT$3new20h9153685487804326652E"} | |
!10 = !{i32 0, i32 2} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment