-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Investigate why #113970 changes async2.rs
coverage maps on some targets
#116134
Comments
@rustbot label -needs-triage |
This comment was marked as outdated.
This comment was marked as outdated.
async2.ll$ x test coverage-map --force-rerun -- async2 ; ModuleID = 'async2.3556024874bfaf70-cgu.0'
source_filename = "async2.3556024874bfaf70-cgu.0"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
target triple = "arm64-apple-macosx11.0.0"
%"core::task::wake::RawWakerVTable" = type { ptr, ptr, ptr, ptr }
%"core::fmt::Arguments<'_>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }
@vtable.0 = private unnamed_addr constant <{ ptr, [16 x i8], ptr, ptr, ptr }> <{ ptr @_RINvNtCscBXtjtswptt_4core3ptr13drop_in_placeNCINvNtCs8koKRe9ETht_3std2rt10lang_startuE0ECs4zUb9XLQiyW_6async2, [16 x i8] c"\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00", ptr @_RNSNvYNCINvNtCs8koKRe9ETht_3std2rt10lang_startuE0INtNtNtCscBXtjtswptt_4core3ops8function6FnOnceuE9call_once6vtableCs4zUb9XLQiyW_6async2, ptr @_RNCINvNtCs8koKRe9ETht_3std2rt10lang_startuE0Cs4zUb9XLQiyW_6async2, ptr @_RNCINvNtCs8koKRe9ETht_3std2rt10lang_startuE0Cs4zUb9XLQiyW_6async2 }>, align 8
@alloc_513570631223a12912d85da2bec3b15a = private unnamed_addr constant <{}> zeroinitializer, align 8
@alloc_9ba35fb86d20c9c13d197ffc9a9264ba = private unnamed_addr constant <{ [27 x i8] }> <{ [27 x i8] c"non_async_func was covered\0A" }>, align 1
@alloc_a921d308b684528df82f6e4dffdb80bd = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @alloc_9ba35fb86d20c9c13d197ffc9a9264ba, [8 x i8] c"\1B\00\00\00\00\00\00\00" }>, align 8
@alloc_842fe36ca0d975cd1eb64dadf6b36635 = private unnamed_addr constant <{ [32 x i8] }> <{ [32 x i8] c"non_async_func println in block\0A" }>, align 1
@alloc_beefbc7dab13e3fb922964c749019704 = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @alloc_842fe36ca0d975cd1eb64dadf6b36635, [8 x i8] c" \00\00\00\00\00\00\00" }>, align 8
@alloc_22eeafdaf5b2dda1e0b3955ae16d58d8 = private unnamed_addr constant <{ [23 x i8] }> <{ [23 x i8] c"async_func was covered\0A" }>, align 1
@alloc_bb9cfe869d3fbd1b0bac54c64137be2e = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @alloc_22eeafdaf5b2dda1e0b3955ae16d58d8, [8 x i8] c"\17\00\00\00\00\00\00\00" }>, align 8
@alloc_8b8d639be3764847ca76057a8208860f = private unnamed_addr constant <{ [28 x i8] }> <{ [28 x i8] c"async_func println in block\0A" }>, align 1
@alloc_8a2eecf69e2fc1f364ea48da3a4d02ff = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @alloc_8b8d639be3764847ca76057a8208860f, [8 x i8] c"\1C\00\00\00\00\00\00\00" }>, align 8
@alloc_626c5d64fd47031c853154dd4aeec363 = private unnamed_addr constant <{ [36 x i8] }> <{ [36 x i8] c"async_func_just_println was covered\0A" }>, align 1
@alloc_228521f8fdd0525c9bea7f9192a53491 = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @alloc_626c5d64fd47031c853154dd4aeec363, [8 x i8] c"$\00\00\00\00\00\00\00" }>, align 8
@alloc_fa958ac97aa85c340217f7ce164b63cf = private unnamed_addr constant <{ [20 x i8] }> <{ [20 x i8] c"codecovsample::main\0A" }>, align 1
@alloc_8c6fa871f2b6ccc3596c5d8143fd3c62 = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @alloc_fa958ac97aa85c340217f7ce164b63cf, [8 x i8] c"\14\00\00\00\00\00\00\00" }>, align 8
@_RNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLE = internal constant <{ ptr, ptr, ptr, ptr }> <{ ptr @_RNvYNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLE0INtNtNtCscBXtjtswptt_4core3ops8function6FnOnceTPuEE9call_onceBa_, ptr @_RNvYNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs0_0INtNtNtCscBXtjtswptt_4core3ops8function6FnOnceTPuEE9call_onceBa_, ptr @_RNvYNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs0_0INtNtNtCscBXtjtswptt_4core3ops8function6FnOnceTPuEE9call_onceBa_, ptr @_RNvYNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs1_0INtNtNtCscBXtjtswptt_4core3ops8function6FnOnceTPuEE9call_onceBa_ }>, align 8
@__covrec_F74DDFE43B4BAE36u = linkonce_odr hidden constant <{ i64, i32, i64, i64, [9 x i8] }> <{ i64 -626598601794277834, i32 9, i64 -6856040691413589372, i64 1889826389874031115, [9 x i8] c"\01\01\00\01\01.\11\00\13" }>, section "__LLVM_COV,__llvm_covfun", align 8
@__covrec_E1A8165202F21C03u = linkonce_odr hidden constant <{ i64, i32, i64, i64, [9 x i8] }> <{ i64 -2186473077595825149, i32 9, i64 155372126598700742, i64 1889826389874031115, [9 x i8] c"\01\01\00\01\01\13\01\00$" }>, section "__LLVM_COV,__llvm_covfun", align 8
@__covrec_AF0136FEB71B924Cu = linkonce_odr hidden constant <{ i64, i32, i64, i64, [9 x i8] }> <{ i64 -5836323174473821620, i32 9, i64 155372126598700742, i64 1889826389874031115, [9 x i8] c"\01\01\00\01\01\13$\02\02" }>, section "__LLVM_COV,__llvm_covfun", align 8
@__covrec_3BF8FE240EC55615u = linkonce_odr hidden constant <{ i64, i32, i64, i64, [9 x i8] }> <{ i64 4321483273282082325, i32 9, i64 719582524320644771, i64 1889826389874031115, [9 x i8] c"\01\01\00\01\01\17\01\07\02" }>, section "__LLVM_COV,__llvm_covfun", align 8
@__covrec_7A4298E94A9FBACAu = linkonce_odr hidden constant <{ i64, i32, i64, i64, [26 x i8] }> <{ i64 8809771948836895434, i32 26, i64 -3630791716643471453, i64 1889826389874031115, [26 x i8] c"\01\01\01\05\00\04\01\03\01\03\09\05\03\0A\02\06\00\02\06\00\07\03\01\01\00\02" }>, section "__LLVM_COV,__llvm_covfun", align 8
@__covrec_82806BDCC676AC9Eu = linkonce_odr hidden constant <{ i64, i32, i64, i64, [44 x i8] }> <{ i64 -9043109455793312610, i32 44, i64 -8617230451985595640, i64 1889826389874031115, [44 x i8] c"\01\01\05\0B\05\01\05\01\05\02\00\02\00\06\01'\05\0A6\02\0D \00#\0B\00'\00I\0F\01\17\00\1A\05\01\0E\00\0F\13\02\05\00\06" }>, section "__LLVM_COV,__llvm_covfun", align 8
@__covrec_2E7D282BFF3BC65Au = linkonce_odr hidden constant <{ i64, i32, i64, i64, [9 x i8] }> <{ i64 3349877867264329306, i32 9, i64 1759751756802921227, i64 1889826389874031115, [9 x i8] c"\01\01\00\01\01\0B\01\00\17" }>, section "__LLVM_COV,__llvm_covfun", align 8
@__covrec_5BC727AD826DA7A4u = linkonce_odr hidden constant <{ i64, i32, i64, i64, [28 x i8] }> <{ i64 6613298203987912612, i32 28, i64 1759751756802921227, i64 1889826389874031115, [28 x i8] c"\01\01\02\01\05\05\02\04\01\0B\17\03\09\05\03\0A\02\06\02\02\06\00\07\07\01\01\00\02" }>, section "__LLVM_COV,__llvm_covfun", align 8
@__covrec_8AD7B697A08EFFCAu = linkonce_odr hidden constant <{ i64, i32, i64, i64, [44 x i8] }> <{ i64 -8442078214132662326, i32 44, i64 -8617230451985595640, i64 1889826389874031115, [44 x i8] c"\01\01\05\0B\05\01\05\01\05\02\00\02\00\06\01'\05\0A6\02\0D \00#\0B\00'\00I\0F\01\17\00\1A\05\01\0E\00\0F\13\02\05\00\06" }>, section "__LLVM_COV,__llvm_covfun", align 8
@__llvm_coverage_mapping = private constant { { i32, i32, i32, i32 }, [77 x i8] } { { i32, i32, i32, i32 } { i32 0, i32 77, i32 0, i32 5 }, [77 x i8] c"\02`Jx\DA\93\D6\0F-N-*\D6/.)M,*\D1wI-\D3/*-.\01\13\CEx\E4\F4KR\8BK\8A\F5\93\F3\CBR\8B\12\D3Sus\13\0B\80\EA\12KJ\8Bu\0BK\F3\F5\13\8B+\F3\92\8D\F4\8A\8A\01\CE<$D" }, section "__LLVM_COV,__llvm_covmap", align 8
@__llvm_profile_runtime = external hidden local_unnamed_addr global i32
@__profc__RNvCs4zUb9XLQiyW_6async214non_async_func = private global [2 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
@__profd__RNvCs4zUb9XLQiyW_6async214non_async_func = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 8809771948836895434, i64 -3630791716643471453, i64 sub (i64 ptrtoint (ptr @__profc__RNvCs4zUb9XLQiyW_6async214non_async_func to i64), i64 ptrtoint (ptr @__profd__RNvCs4zUb9XLQiyW_6async214non_async_func to i64)), ptr null, ptr null, i32 2, [2 x i16] zeroinitializer }, section "__DATA,__llvm_prf_data,regular,live_support", align 8
@__profc__RNvCs4zUb9XLQiyW_6async210async_func = private global [1 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
@__profd__RNvCs4zUb9XLQiyW_6async210async_func = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 3349877867264329306, i64 1759751756802921227, i64 sub (i64 ptrtoint (ptr @__profc__RNvCs4zUb9XLQiyW_6async210async_func to i64), i64 ptrtoint (ptr @__profd__RNvCs4zUb9XLQiyW_6async210async_func to i64)), ptr null, ptr null, i32 1, [2 x i16] zeroinitializer }, section "__DATA,__llvm_prf_data,regular,live_support", align 8
@__profc__RNCNvCs4zUb9XLQiyW_6async210async_func0B3_ = private global [2 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
@__profd__RNCNvCs4zUb9XLQiyW_6async210async_func0B3_ = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 6613298203987912612, i64 1759751756802921227, i64 sub (i64 ptrtoint (ptr @__profc__RNCNvCs4zUb9XLQiyW_6async210async_func0B3_ to i64), i64 ptrtoint (ptr @__profd__RNCNvCs4zUb9XLQiyW_6async210async_func0B3_ to i64)), ptr null, ptr null, i32 2, [2 x i16] zeroinitializer }, section "__DATA,__llvm_prf_data,regular,live_support", align 8
@__profc__RNvCs4zUb9XLQiyW_6async223async_func_just_println = private global [1 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
@__profd__RNvCs4zUb9XLQiyW_6async223async_func_just_println = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 -2186473077595825149, i64 155372126598700742, i64 sub (i64 ptrtoint (ptr @__profc__RNvCs4zUb9XLQiyW_6async223async_func_just_println to i64), i64 ptrtoint (ptr @__profd__RNvCs4zUb9XLQiyW_6async223async_func_just_println to i64)), ptr null, ptr null, i32 1, [2 x i16] zeroinitializer }, section "__DATA,__llvm_prf_data,regular,live_support", align 8
@__profc__RNCNvCs4zUb9XLQiyW_6async223async_func_just_println0B3_ = private global [1 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
@__profd__RNCNvCs4zUb9XLQiyW_6async223async_func_just_println0B3_ = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 -5836323174473821620, i64 155372126598700742, i64 sub (i64 ptrtoint (ptr @__profc__RNCNvCs4zUb9XLQiyW_6async223async_func_just_println0B3_ to i64), i64 ptrtoint (ptr @__profd__RNCNvCs4zUb9XLQiyW_6async223async_func_just_println0B3_ to i64)), ptr null, ptr null, i32 1, [2 x i16] zeroinitializer }, section "__DATA,__llvm_prf_data,regular,live_support", align 8
@__profc__RNvCs4zUb9XLQiyW_6async24main = private global [1 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
@__profd__RNvCs4zUb9XLQiyW_6async24main = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 4321483273282082325, i64 719582524320644771, i64 sub (i64 ptrtoint (ptr @__profc__RNvCs4zUb9XLQiyW_6async24main to i64), i64 ptrtoint (ptr @__profd__RNvCs4zUb9XLQiyW_6async24main to i64)), ptr null, ptr null, i32 1, [2 x i16] zeroinitializer }, section "__DATA,__llvm_prf_data,regular,live_support", align 8
@__profc__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_10async_func0EB4_ = private global [2 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
@__profd__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_10async_func0EB4_ = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 -9043109455793312610, i64 -8617230451985595640, i64 sub (i64 ptrtoint (ptr @__profc__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_10async_func0EB4_ to i64), i64 ptrtoint (ptr @__profd__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_10async_func0EB4_ to i64)), ptr null, ptr null, i32 2, [2 x i16] zeroinitializer }, section "__DATA,__llvm_prf_data,regular,live_support", align 8
@__profc__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_23async_func_just_println0EB4_ = private global [2 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
@__profd__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_23async_func_just_println0EB4_ = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 -8442078214132662326, i64 -8617230451985595640, i64 sub (i64 ptrtoint (ptr @__profc__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_23async_func_just_println0EB4_ to i64), i64 ptrtoint (ptr @__profd__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_23async_func_just_println0EB4_ to i64)), ptr null, ptr null, i32 2, [2 x i16] zeroinitializer }, section "__DATA,__llvm_prf_data,regular,live_support", align 8
@__profc__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs1_0B7_ = private global [1 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
@__profd__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs1_0B7_ = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 -626598601794277834, i64 -6856040691413589372, i64 sub (i64 ptrtoint (ptr @__profc__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs1_0B7_ to i64), i64 ptrtoint (ptr @__profd__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs1_0B7_ to i64)), ptr null, ptr null, i32 1, [2 x i16] zeroinitializer }, section "__DATA,__llvm_prf_data,regular,live_support", align 8
@__llvm_prf_nm = private constant [158 x i8] c"\E1\03\9A\01x\DA\8B\0F\F2+s.6\A9\0AM\B2\8C\F0\09\CC\AC\0C\8F7K,\AE\CCK624\C9\CB\CF\8B\07\B3\E3\D3J\F3\92\19\E3q\AA4@U\E5L\84:\03'\E3x\DC&\1A\19#T\C6g\95\16\97\C4\17\14e\E6\95\E4\E4\E13\1E\A7&\FCv\99\E4&f\82\CC\F5\F4+\F3+\C1\AA\C2\22\B5\225\B9\B4$\BF\C8\22)'?9;>?\0F\E4\06'\93x\14\0F\B9\02\05\C83\06\B7\C3\A1f\82\D4\91`\ACYX\88\A3\93\8Fk\B1a\BC\81\93y<\00q\D3\ABo", section "__DATA,__llvm_prf_names", align 1
@__llvm_profile_filename = weak hidden local_unnamed_addr constant [22 x i8] c"default_%m_%p.profraw\00"
@llvm.used = appending global [11 x ptr] [ptr @__covrec_2E7D282BFF3BC65Au, ptr @__covrec_3BF8FE240EC55615u, ptr @__covrec_5BC727AD826DA7A4u, ptr @__covrec_7A4298E94A9FBACAu, ptr @__covrec_82806BDCC676AC9Eu, ptr @__covrec_8AD7B697A08EFFCAu, ptr @__covrec_AF0136FEB71B924Cu, ptr @__covrec_E1A8165202F21C03u, ptr @__covrec_F74DDFE43B4BAE36u, ptr @__llvm_coverage_mapping, ptr @__llvm_prf_nm], section "llvm.metadata"
@llvm.compiler.used = appending global [10 x ptr] [ptr @__llvm_profile_runtime_user, ptr @__profd__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_10async_func0EB4_, ptr @__profd__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_23async_func_just_println0EB4_, ptr @__profd__RNCNvCs4zUb9XLQiyW_6async210async_func0B3_, ptr @__profd__RNCNvCs4zUb9XLQiyW_6async223async_func_just_println0B3_, ptr @__profd__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs1_0B7_, ptr @__profd__RNvCs4zUb9XLQiyW_6async210async_func, ptr @__profd__RNvCs4zUb9XLQiyW_6async214non_async_func, ptr @__profd__RNvCs4zUb9XLQiyW_6async223async_func_just_println, ptr @__profd__RNvCs4zUb9XLQiyW_6async24main], section "llvm.metadata"
; std::rt::lang_start::<()>
; Function Attrs: uwtable
define hidden noundef i64 @_RINvNtCs8koKRe9ETht_3std2rt10lang_startuECs4zUb9XLQiyW_6async2(ptr noundef nonnull %main, i64 noundef %argc, ptr noundef %argv, i8 noundef %sigpipe) unnamed_addr #0 {
start:
%_8 = alloca ptr, align 8
call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_8)
store ptr %main, ptr %_8, align 8
; call std::rt::lang_start_internal
%0 = call noundef i64 @_ZN3std2rt19lang_start_internal17he54ad6d8e161668fE(ptr noundef nonnull align 1 %_8, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @vtable.0, i64 noundef %argc, ptr noundef %argv, i8 noundef %sigpipe)
call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_8)
ret i64 %0
}
; core::ptr::drop_in_place::<std::rt::lang_start<()>::{closure#0}>
; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable
define internal void @_RINvNtCscBXtjtswptt_4core3ptr13drop_in_placeNCINvNtCs8koKRe9ETht_3std2rt10lang_startuE0ECs4zUb9XLQiyW_6async2(ptr noalias nocapture readnone align 8 %_1) unnamed_addr #1 {
start:
ret void
}
; core::ptr::drop_in_place::<core::task::wake::Waker>
; Function Attrs: uwtable
define internal fastcc void @_RINvNtCscBXtjtswptt_4core3ptr13drop_in_placeNtNtNtB4_4task4wake5WakerECs4zUb9XLQiyW_6async2(ptr noalias nocapture noundef readonly align 8 dereferenceable(16) %_1) unnamed_addr #0 {
start:
tail call void @llvm.experimental.noalias.scope.decl(metadata !3)
%_4.i = load ptr, ptr %_1, align 8, !alias.scope !3, !nonnull !6, !align !7, !noundef !6
%0 = getelementptr inbounds %"core::task::wake::RawWakerVTable", ptr %_4.i, i64 0, i32 3
%_2.i = load ptr, ptr %0, align 8, !noalias !3, !nonnull !6, !noundef !6
%1 = getelementptr inbounds { ptr, ptr }, ptr %_1, i64 0, i32 1
%_3.i = load ptr, ptr %1, align 8, !alias.scope !3, !noundef !6
tail call void %_2.i(ptr noundef %_3.i), !noalias !3
ret void
}
; std::sys_common::backtrace::__rust_begin_short_backtrace::<fn(), ()>
; Function Attrs: noinline uwtable
define internal fastcc void @_RINvNtNtCs8koKRe9ETht_3std10sys_common9backtrace28___rust_begin_short_backtraceFEuuECs4zUb9XLQiyW_6async2(ptr nocapture noundef nonnull readonly %f) unnamed_addr #2 {
start:
tail call void %f()
tail call void asm sideeffect "", "~{memory}"() #11, !srcloc !8
ret void
}
; std::rt::lang_start::<()>::{closure#0}
; Function Attrs: inlinehint uwtable
define internal noundef i32 @_RNCINvNtCs8koKRe9ETht_3std2rt10lang_startuE0Cs4zUb9XLQiyW_6async2(ptr noalias nocapture noundef readonly align 8 dereferenceable(8) %_1) unnamed_addr #3 {
start:
%_4 = load ptr, ptr %_1, align 8, !nonnull !6, !noundef !6
; call std::sys_common::backtrace::__rust_begin_short_backtrace::<fn(), ()>
tail call fastcc void @_RINvNtNtCs8koKRe9ETht_3std10sys_common9backtrace28___rust_begin_short_backtraceFEuuECs4zUb9XLQiyW_6async2(ptr noundef nonnull %_4)
ret i32 0
}
; <std::rt::lang_start<()>::{closure#0} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
; Function Attrs: inlinehint uwtable
define internal noundef i32 @_RNSNvYNCINvNtCs8koKRe9ETht_3std2rt10lang_startuE0INtNtNtCscBXtjtswptt_4core3ops8function6FnOnceuE9call_once6vtableCs4zUb9XLQiyW_6async2(ptr nocapture noundef readonly %_1) unnamed_addr #3 personality ptr @rust_eh_personality {
start:
%0 = load ptr, ptr %_1, align 8, !nonnull !6, !noundef !6
; call std::sys_common::backtrace::__rust_begin_short_backtrace::<fn(), ()>
tail call fastcc void @_RINvNtNtCs8koKRe9ETht_3std10sys_common9backtrace28___rust_begin_short_backtraceFEuuECs4zUb9XLQiyW_6async2(ptr noundef nonnull %0), !noalias !9
ret i32 0
}
; <async2::executor::block_on::VTABLE::{closure#0} as core::ops::function::FnOnce<(*const (),)>>::call_once
; Function Attrs: inlinehint mustprogress nofree norecurse noreturn nosync nounwind willreturn memory(none) uwtable
define internal { ptr, ptr } @_RNvYNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLE0INtNtNtCscBXtjtswptt_4core3ops8function6FnOnceTPuEE9call_onceBa_(ptr nocapture readnone %0) unnamed_addr #4 personality ptr @rust_eh_personality {
start:
unreachable
}
; <async2::executor::block_on::VTABLE::{closure#2} as core::ops::function::FnOnce<(*const (),)>>::call_once
; Function Attrs: inlinehint mustprogress nofree norecurse noreturn nosync nounwind willreturn memory(none) uwtable
define internal void @_RNvYNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs0_0INtNtNtCscBXtjtswptt_4core3ops8function6FnOnceTPuEE9call_onceBa_(ptr nocapture readnone %0) unnamed_addr #4 personality ptr @rust_eh_personality {
start:
unreachable
}
; <async2::executor::block_on::VTABLE::{closure#3} as core::ops::function::FnOnce<(*const (),)>>::call_once
; Function Attrs: inlinehint mustprogress nofree norecurse nounwind willreturn memory(readwrite, argmem: none, inaccessiblemem: none) uwtable
define internal void @_RNvYNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs1_0INtNtNtCscBXtjtswptt_4core3ops8function6FnOnceTPuEE9call_onceBa_(ptr nocapture readnone %0) unnamed_addr #5 personality ptr @rust_eh_personality {
start:
%1 = atomicrmw add ptr @__profc__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs1_0B7_, i64 1 monotonic, align 8
ret void
}
; async2::main
; Function Attrs: uwtable
define internal void @_RNvCs4zUb9XLQiyW_6async24main() unnamed_addr #0 personality ptr @rust_eh_personality {
start:
%_4.i.i2 = alloca %"core::fmt::Arguments<'_>", align 8
%waker.i3 = alloca { ptr, ptr }, align 8
%_8.i.i = alloca %"core::fmt::Arguments<'_>", align 8
%_4.i.i = alloca %"core::fmt::Arguments<'_>", align 8
%waker.i = alloca { ptr, ptr }, align 8
%_5.i = alloca %"core::fmt::Arguments<'_>", align 8
%_2.i = alloca %"core::fmt::Arguments<'_>", align 8
%_2 = alloca %"core::fmt::Arguments<'_>", align 8
%0 = atomicrmw add ptr @__profc__RNvCs4zUb9XLQiyW_6async24main, i64 1 monotonic, align 8
call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_2)
store ptr @alloc_8c6fa871f2b6ccc3596c5d8143fd3c62, ptr %_2, align 8
%1 = getelementptr inbounds { ptr, i64 }, ptr %_2, i64 0, i32 1
store i64 1, ptr %1, align 8
%2 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_2, i64 0, i32 2
store ptr null, ptr %2, align 8
%3 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_2, i64 0, i32 1
store ptr @alloc_513570631223a12912d85da2bec3b15a, ptr %3, align 8
%4 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_2, i64 0, i32 1, i32 1
store i64 0, ptr %4, align 8
; call std::io::stdio::_print
call void @_ZN3std2io5stdio6_print17h159df1e36ccb658eE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_2)
call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %_2)
%5 = atomicrmw add ptr @__profc__RNvCs4zUb9XLQiyW_6async214non_async_func, i64 1 monotonic, align 8
call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_2.i)
store ptr @alloc_a921d308b684528df82f6e4dffdb80bd, ptr %_2.i, align 8
%6 = getelementptr inbounds { ptr, i64 }, ptr %_2.i, i64 0, i32 1
store i64 1, ptr %6, align 8
%7 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_2.i, i64 0, i32 2
store ptr null, ptr %7, align 8
%8 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_2.i, i64 0, i32 1
store ptr @alloc_513570631223a12912d85da2bec3b15a, ptr %8, align 8
%9 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_2.i, i64 0, i32 1, i32 1
store i64 0, ptr %9, align 8
; call std::io::stdio::_print
call void @_ZN3std2io5stdio6_print17h159df1e36ccb658eE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_2.i)
call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %_2.i)
%10 = atomicrmw add ptr getelementptr inbounds ([2 x i64], ptr @__profc__RNvCs4zUb9XLQiyW_6async214non_async_func, i64 0, i64 1), i64 1 monotonic, align 8
call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_5.i)
store ptr @alloc_beefbc7dab13e3fb922964c749019704, ptr %_5.i, align 8
%11 = getelementptr inbounds { ptr, i64 }, ptr %_5.i, i64 0, i32 1
store i64 1, ptr %11, align 8
%12 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_5.i, i64 0, i32 2
store ptr null, ptr %12, align 8
%13 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_5.i, i64 0, i32 1
store ptr @alloc_513570631223a12912d85da2bec3b15a, ptr %13, align 8
%14 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_5.i, i64 0, i32 1, i32 1
store i64 0, ptr %14, align 8
; call std::io::stdio::_print
call void @_ZN3std2io5stdio6_print17h159df1e36ccb658eE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_5.i)
call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %_5.i)
%15 = atomicrmw add ptr @__profc__RNvCs4zUb9XLQiyW_6async210async_func, i64 1 monotonic, align 8
%16 = atomicrmw add ptr @__profc__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_10async_func0EB4_, i64 1 monotonic, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %waker.i)
store ptr @_RNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLE, ptr %waker.i, align 8
%17 = getelementptr inbounds { ptr, ptr }, ptr %waker.i, i64 0, i32 1
store ptr null, ptr %17, align 8
%18 = atomicrmw add ptr @__profc__RNCNvCs4zUb9XLQiyW_6async210async_func0B3_, i64 1 monotonic, align 8
call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_4.i.i)
store ptr @alloc_bb9cfe869d3fbd1b0bac54c64137be2e, ptr %_4.i.i, align 8, !alias.scope !12, !noalias !15
%19 = getelementptr inbounds { ptr, i64 }, ptr %_4.i.i, i64 0, i32 1
store i64 1, ptr %19, align 8, !alias.scope !12, !noalias !15
%20 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_4.i.i, i64 0, i32 2
store ptr null, ptr %20, align 8, !alias.scope !12, !noalias !15
%21 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_4.i.i, i64 0, i32 1
store ptr @alloc_513570631223a12912d85da2bec3b15a, ptr %21, align 8, !alias.scope !12, !noalias !15
%22 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_4.i.i, i64 0, i32 1, i32 1
store i64 0, ptr %22, align 8, !alias.scope !12, !noalias !15
; invoke std::io::stdio::_print
invoke void @_ZN3std2io5stdio6_print17h159df1e36ccb658eE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_4.i.i)
to label %bb5.i.i unwind label %cleanup1.i.i
cleanup1.i.i: ; preds = %start
%23 = landingpad { ptr, i32 }
cleanup
call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %_4.i.i)
br label %cleanup.body.i
bb5.i.i: ; preds = %start
call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %_4.i.i)
%24 = atomicrmw add ptr getelementptr inbounds ([2 x i64], ptr @__profc__RNCNvCs4zUb9XLQiyW_6async210async_func0B3_, i64 0, i64 1), i64 1 monotonic, align 8
call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_8.i.i)
store ptr @alloc_8a2eecf69e2fc1f364ea48da3a4d02ff, ptr %_8.i.i, align 8, !alias.scope !17, !noalias !20
%25 = getelementptr inbounds { ptr, i64 }, ptr %_8.i.i, i64 0, i32 1
store i64 1, ptr %25, align 8, !alias.scope !17, !noalias !20
%26 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i, i64 0, i32 2
store ptr null, ptr %26, align 8, !alias.scope !17, !noalias !20
%27 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i, i64 0, i32 1
store ptr @alloc_513570631223a12912d85da2bec3b15a, ptr %27, align 8, !alias.scope !17, !noalias !20
%28 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i, i64 0, i32 1, i32 1
store i64 0, ptr %28, align 8, !alias.scope !17, !noalias !20
; invoke std::io::stdio::_print
invoke void @_ZN3std2io5stdio6_print17h159df1e36ccb658eE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_8.i.i)
to label %_RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_10async_func0EB4_.exit unwind label %cleanup3.i.i
cleanup3.i.i: ; preds = %bb5.i.i
%29 = landingpad { ptr, i32 }
cleanup
call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %_8.i.i)
br label %cleanup.body.i
cleanup.body.i: ; preds = %cleanup3.i.i, %cleanup1.i.i
%.pn6.pn.i.i = phi { ptr, i32 } [ %29, %cleanup3.i.i ], [ %23, %cleanup1.i.i ]
; invoke core::ptr::drop_in_place::<core::task::wake::Waker>
invoke fastcc void @_RINvNtCscBXtjtswptt_4core3ptr13drop_in_placeNtNtNtB4_4task4wake5WakerECs4zUb9XLQiyW_6async2(ptr noalias noundef nonnull align 8 dereferenceable(16) %waker.i) #9
to label %common.resume unwind label %terminate.i
terminate.i: ; preds = %cleanup.body.i
%30 = landingpad { ptr, i32 }
filter [0 x ptr] zeroinitializer
; call core::panicking::panic_in_cleanup
tail call void @_ZN4core9panicking16panic_in_cleanup17h79e82dd57955c40cE() #12
unreachable
common.resume: ; preds = %cleanup.body.i4, %cleanup.body.i
%common.resume.op = phi { ptr, i32 } [ %.pn6.pn.i.i, %cleanup.body.i ], [ %40, %cleanup.body.i4 ]
resume { ptr, i32 } %common.resume.op
_RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_10async_func0EB4_.exit: ; preds = %bb5.i.i
call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %_8.i.i)
%31 = atomicrmw add ptr @__profc__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs1_0B7_, i64 1 monotonic, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %waker.i)
%32 = atomicrmw add ptr @__profc__RNvCs4zUb9XLQiyW_6async223async_func_just_println, i64 1 monotonic, align 8
%33 = atomicrmw add ptr @__profc__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_23async_func_just_println0EB4_, i64 1 monotonic, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %waker.i3)
store ptr @_RNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLE, ptr %waker.i3, align 8
%34 = getelementptr inbounds { ptr, ptr }, ptr %waker.i3, i64 0, i32 1
store ptr null, ptr %34, align 8
%35 = atomicrmw add ptr @__profc__RNCNvCs4zUb9XLQiyW_6async223async_func_just_println0B3_, i64 1 monotonic, align 8
call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_4.i.i2)
store ptr @alloc_228521f8fdd0525c9bea7f9192a53491, ptr %_4.i.i2, align 8, !alias.scope !22, !noalias !25
%36 = getelementptr inbounds { ptr, i64 }, ptr %_4.i.i2, i64 0, i32 1
store i64 1, ptr %36, align 8, !alias.scope !22, !noalias !25
%37 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_4.i.i2, i64 0, i32 2
store ptr null, ptr %37, align 8, !alias.scope !22, !noalias !25
%38 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_4.i.i2, i64 0, i32 1
store ptr @alloc_513570631223a12912d85da2bec3b15a, ptr %38, align 8, !alias.scope !22, !noalias !25
%39 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_4.i.i2, i64 0, i32 1, i32 1
store i64 0, ptr %39, align 8, !alias.scope !22, !noalias !25
; invoke std::io::stdio::_print
invoke void @_ZN3std2io5stdio6_print17h159df1e36ccb658eE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_4.i.i2)
to label %_RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_23async_func_just_println0EB4_.exit unwind label %cleanup.body.i4
cleanup.body.i4: ; preds = %_RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_10async_func0EB4_.exit
%40 = landingpad { ptr, i32 }
cleanup
call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %_4.i.i2)
; invoke core::ptr::drop_in_place::<core::task::wake::Waker>
invoke fastcc void @_RINvNtCscBXtjtswptt_4core3ptr13drop_in_placeNtNtNtB4_4task4wake5WakerECs4zUb9XLQiyW_6async2(ptr noalias noundef nonnull align 8 dereferenceable(16) %waker.i3) #9
to label %common.resume unwind label %terminate.i5
terminate.i5: ; preds = %cleanup.body.i4
%41 = landingpad { ptr, i32 }
filter [0 x ptr] zeroinitializer
; call core::panicking::panic_in_cleanup
tail call void @_ZN4core9panicking16panic_in_cleanup17h79e82dd57955c40cE() #12
unreachable
_RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_23async_func_just_println0EB4_.exit: ; preds = %_RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_10async_func0EB4_.exit
call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %_4.i.i2)
%42 = atomicrmw add ptr @__profc__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs1_0B7_, i64 1 monotonic, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %waker.i3)
ret void
}
; std::rt::lang_start_internal
; Function Attrs: uwtable
declare noundef i64 @_ZN3std2rt19lang_start_internal17he54ad6d8e161668fE(ptr noundef nonnull align 1, ptr noalias noundef readonly align 8 dereferenceable(24), i64 noundef, ptr noundef, i8 noundef) unnamed_addr #0
; Function Attrs: uwtable
declare noundef i32 @rust_eh_personality(i32 noundef, i32 noundef, i64 noundef, ptr noundef, ptr noundef) unnamed_addr #0
; std::io::stdio::_print
; Function Attrs: uwtable
declare void @_ZN3std2io5stdio6_print17h159df1e36ccb658eE(ptr noalias nocapture noundef align 8 dereferenceable(48)) unnamed_addr #0
; core::panicking::panic_in_cleanup
; Function Attrs: cold noinline noreturn nounwind uwtable
declare void @_ZN4core9panicking16panic_in_cleanup17h79e82dd57955c40cE() unnamed_addr #6
define i32 @main(i32 %0, ptr %1) unnamed_addr #7 {
top:
%_8.i = alloca ptr, align 8
%2 = sext i32 %0 to i64
call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_8.i)
store ptr @_RNvCs4zUb9XLQiyW_6async24main, ptr %_8.i, align 8
; call std::rt::lang_start_internal
%3 = call noundef i64 @_ZN3std2rt19lang_start_internal17he54ad6d8e161668fE(ptr noundef nonnull align 1 %_8.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @vtable.0, i64 noundef %2, ptr noundef %1, i8 noundef 0)
call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_8.i)
%4 = trunc i64 %3 to i32
ret i32 %4
}
; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #8
; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #8
; Function Attrs: noinline
define linkonce_odr hidden i32 @__llvm_profile_runtime_user() #9 {
%1 = load i32, ptr @__llvm_profile_runtime, align 4
ret i32 %1
}
; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite)
declare void @llvm.experimental.noalias.scope.decl(metadata) #10
attributes #0 = { uwtable "frame-pointer"="non-leaf" "target-cpu"="apple-m1" }
attributes #1 = { inlinehint mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "frame-pointer"="non-leaf" "target-cpu"="apple-m1" }
attributes #2 = { noinline uwtable "frame-pointer"="non-leaf" "target-cpu"="apple-m1" }
attributes #3 = { inlinehint uwtable "frame-pointer"="non-leaf" "target-cpu"="apple-m1" }
attributes #4 = { inlinehint mustprogress nofree norecurse noreturn nosync nounwind willreturn memory(none) uwtable "frame-pointer"="non-leaf" "target-cpu"="apple-m1" }
attributes #5 = { inlinehint mustprogress nofree norecurse nounwind willreturn memory(readwrite, argmem: none, inaccessiblemem: none) uwtable "frame-pointer"="non-leaf" "target-cpu"="apple-m1" }
attributes #6 = { cold noinline noreturn nounwind uwtable "frame-pointer"="non-leaf" "target-cpu"="apple-m1" }
attributes #7 = { "frame-pointer"="non-leaf" "target-cpu"="apple-m1" }
attributes #8 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { noinline }
attributes #10 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) }
attributes #11 = { nounwind }
attributes #12 = { noinline noreturn nounwind }
!llvm.module.flags = !{!0, !1}
!llvm.ident = !{!2}
!0 = !{i32 8, !"PIC Level", i32 2}
!1 = !{i32 7, !"PIE Level", i32 2}
!2 = !{!"rustc version 1.74.0-dev"}
!3 = !{!4}
!4 = distinct !{!4, !5, !"_ZN65_$LT$core..task..wake..Waker$u20$as$u20$core..ops..drop..Drop$GT$4drop17h46a336b29aede688E: %self"}
!5 = distinct !{!5, !"_ZN65_$LT$core..task..wake..Waker$u20$as$u20$core..ops..drop..Drop$GT$4drop17h46a336b29aede688E"}
!6 = !{}
!7 = !{i64 8}
!8 = !{i32 587843}
!9 = !{!10}
!10 = distinct !{!10, !11, !"_RNCINvNtCs8koKRe9ETht_3std2rt10lang_startuE0Cs4zUb9XLQiyW_6async2: %_1"}
!11 = distinct !{!11, !"_RNCINvNtCs8koKRe9ETht_3std2rt10lang_startuE0Cs4zUb9XLQiyW_6async2"}
!12 = !{!13}
!13 = distinct !{!13, !14, !"_ZN4core3fmt9Arguments9new_const17h4dfb0a79b9637285E: %_0"}
!14 = distinct !{!14, !"_ZN4core3fmt9Arguments9new_const17h4dfb0a79b9637285E"}
!15 = !{!16}
!16 = distinct !{!16, !14, !"_ZN4core3fmt9Arguments9new_const17h4dfb0a79b9637285E: %pieces.0"}
!17 = !{!18}
!18 = distinct !{!18, !19, !"_ZN4core3fmt9Arguments9new_const17h4dfb0a79b9637285E: %_0"}
!19 = distinct !{!19, !"_ZN4core3fmt9Arguments9new_const17h4dfb0a79b9637285E"}
!20 = !{!21}
!21 = distinct !{!21, !19, !"_ZN4core3fmt9Arguments9new_const17h4dfb0a79b9637285E: %pieces.0"}
!22 = !{!23}
!23 = distinct !{!23, !24, !"_ZN4core3fmt9Arguments9new_const17h4dfb0a79b9637285E: %_0"}
!24 = distinct !{!24, !"_ZN4core3fmt9Arguments9new_const17h4dfb0a79b9637285E"}
!25 = !{!26}
!26 = distinct !{!26, !24, !"_ZN4core3fmt9Arguments9new_const17h4dfb0a79b9637285E: %pieces.0"} |
Looking at the LLVM IR, it seems that the closures have an unreachable body, with no remnant of the Perhaps that intrinsic is being optimized away before the |
async2.ll (from master, for comparison); ModuleID = 'async2.3556024874bfaf70-cgu.0'
source_filename = "async2.3556024874bfaf70-cgu.0"
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
target triple = "arm64-apple-macosx11.0.0"
%"core::task::wake::RawWakerVTable" = type { ptr, ptr, ptr, ptr }
%"core::fmt::Arguments<'_>" = type { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }
@vtable.0 = private unnamed_addr constant <{ ptr, [16 x i8], ptr, ptr, ptr }> <{ ptr @_RINvNtCscBXtjtswptt_4core3ptr13drop_in_placeNCINvNtCs8koKRe9ETht_3std2rt10lang_startuE0ECs4zUb9XLQiyW_6async2, [16 x i8] c"\08\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00", ptr @_RNSNvYNCINvNtCs8koKRe9ETht_3std2rt10lang_startuE0INtNtNtCscBXtjtswptt_4core3ops8function6FnOnceuE9call_once6vtableCs4zUb9XLQiyW_6async2, ptr @_RNCINvNtCs8koKRe9ETht_3std2rt10lang_startuE0Cs4zUb9XLQiyW_6async2, ptr @_RNCINvNtCs8koKRe9ETht_3std2rt10lang_startuE0Cs4zUb9XLQiyW_6async2 }>, align 8
@alloc_513570631223a12912d85da2bec3b15a = private unnamed_addr constant <{}> zeroinitializer, align 8
@alloc_9ba35fb86d20c9c13d197ffc9a9264ba = private unnamed_addr constant <{ [27 x i8] }> <{ [27 x i8] c"non_async_func was covered\0A" }>, align 1
@alloc_a921d308b684528df82f6e4dffdb80bd = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @alloc_9ba35fb86d20c9c13d197ffc9a9264ba, [8 x i8] c"\1B\00\00\00\00\00\00\00" }>, align 8
@alloc_842fe36ca0d975cd1eb64dadf6b36635 = private unnamed_addr constant <{ [32 x i8] }> <{ [32 x i8] c"non_async_func println in block\0A" }>, align 1
@alloc_beefbc7dab13e3fb922964c749019704 = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @alloc_842fe36ca0d975cd1eb64dadf6b36635, [8 x i8] c" \00\00\00\00\00\00\00" }>, align 8
@alloc_22eeafdaf5b2dda1e0b3955ae16d58d8 = private unnamed_addr constant <{ [23 x i8] }> <{ [23 x i8] c"async_func was covered\0A" }>, align 1
@alloc_bb9cfe869d3fbd1b0bac54c64137be2e = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @alloc_22eeafdaf5b2dda1e0b3955ae16d58d8, [8 x i8] c"\17\00\00\00\00\00\00\00" }>, align 8
@alloc_8b8d639be3764847ca76057a8208860f = private unnamed_addr constant <{ [28 x i8] }> <{ [28 x i8] c"async_func println in block\0A" }>, align 1
@alloc_8a2eecf69e2fc1f364ea48da3a4d02ff = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @alloc_8b8d639be3764847ca76057a8208860f, [8 x i8] c"\1C\00\00\00\00\00\00\00" }>, align 8
@alloc_626c5d64fd47031c853154dd4aeec363 = private unnamed_addr constant <{ [36 x i8] }> <{ [36 x i8] c"async_func_just_println was covered\0A" }>, align 1
@alloc_228521f8fdd0525c9bea7f9192a53491 = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @alloc_626c5d64fd47031c853154dd4aeec363, [8 x i8] c"$\00\00\00\00\00\00\00" }>, align 8
@alloc_fa958ac97aa85c340217f7ce164b63cf = private unnamed_addr constant <{ [20 x i8] }> <{ [20 x i8] c"codecovsample::main\0A" }>, align 1
@alloc_8c6fa871f2b6ccc3596c5d8143fd3c62 = private unnamed_addr constant <{ ptr, [8 x i8] }> <{ ptr @alloc_fa958ac97aa85c340217f7ce164b63cf, [8 x i8] c"\14\00\00\00\00\00\00\00" }>, align 8
@_RNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLE = internal constant <{ ptr, ptr, ptr, ptr }> <{ ptr @_RNvYNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLE0INtNtNtCscBXtjtswptt_4core3ops8function6FnOnceTPuEE9call_onceBa_, ptr @_RNvYNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs0_0INtNtNtCscBXtjtswptt_4core3ops8function6FnOnceTPuEE9call_onceBa_, ptr @_RNvYNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs0_0INtNtNtCscBXtjtswptt_4core3ops8function6FnOnceTPuEE9call_onceBa_, ptr @_RNvYNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs1_0INtNtNtCscBXtjtswptt_4core3ops8function6FnOnceTPuEE9call_onceBa_ }>, align 8
@__covrec_F74DDFE43B4BAE36u = linkonce_odr hidden constant <{ i64, i32, i64, i64, [9 x i8] }> <{ i64 -626598601794277834, i32 9, i64 -6856040691413589372, i64 1889826389874031115, [9 x i8] c"\01\01\00\01\01.\11\00\13" }>, section "__LLVM_COV,__llvm_covfun", align 8
@__covrec_E1A8165202F21C03u = linkonce_odr hidden constant <{ i64, i32, i64, i64, [9 x i8] }> <{ i64 -2186473077595825149, i32 9, i64 155372126598700742, i64 1889826389874031115, [9 x i8] c"\01\01\00\01\01\13\01\00$" }>, section "__LLVM_COV,__llvm_covfun", align 8
@__covrec_5BC727AD826DA7A4u = linkonce_odr hidden constant <{ i64, i32, i64, i64, [28 x i8] }> <{ i64 6613298203987912612, i32 28, i64 1759751756802921227, i64 1889826389874031115, [28 x i8] c"\01\01\02\01\05\05\02\04\01\0B\17\03\09\05\03\0A\02\06\02\02\06\00\07\07\01\01\00\02" }>, section "__LLVM_COV,__llvm_covfun", align 8
@__covrec_AF0136FEB71B924Cu = linkonce_odr hidden constant <{ i64, i32, i64, i64, [9 x i8] }> <{ i64 -5836323174473821620, i32 9, i64 155372126598700742, i64 1889826389874031115, [9 x i8] c"\01\01\00\01\01\13$\02\02" }>, section "__LLVM_COV,__llvm_covfun", align 8
@__covrec_B970A97BED51257Au = linkonce_odr hidden constant <{ i64, i32, i64, i64, [9 x i8] }> <{ i64 -5084377629573700230, i32 9, i64 -6856040691413589372, i64 1889826389874031115, [9 x i8] c"\01\01\00\01\01+\11\003" }>, section "__LLVM_COV,__llvm_covfun", align 8
@__covrec_3BF8FE240EC55615u = linkonce_odr hidden constant <{ i64, i32, i64, i64, [9 x i8] }> <{ i64 4321483273282082325, i32 9, i64 719582524320644771, i64 1889826389874031115, [9 x i8] c"\01\01\00\01\01\17\01\07\02" }>, section "__LLVM_COV,__llvm_covfun", align 8
@__covrec_7A4298E94A9FBACAu = linkonce_odr hidden constant <{ i64, i32, i64, i64, [26 x i8] }> <{ i64 8809771948836895434, i32 26, i64 -3630791716643471453, i64 1889826389874031115, [26 x i8] c"\01\01\01\05\00\04\01\03\01\03\09\05\03\0A\02\06\00\02\06\00\07\03\01\01\00\02" }>, section "__LLVM_COV,__llvm_covfun", align 8
@__covrec_2E7D282BFF3BC65Au = linkonce_odr hidden constant <{ i64, i32, i64, i64, [9 x i8] }> <{ i64 3349877867264329306, i32 9, i64 1759751756802921227, i64 1889826389874031115, [9 x i8] c"\01\01\00\01\01\0B\01\00\17" }>, section "__LLVM_COV,__llvm_covfun", align 8
@__covrec_BCBD2FA868D7E7A1u = linkonce_odr hidden constant <{ i64, i32, i64, i64, [9 x i8] }> <{ i64 -4846665223620794463, i32 9, i64 -6856040691413589372, i64 1889826389874031115, [9 x i8] c"\01\01\00\01\01,\11\003" }>, section "__LLVM_COV,__llvm_covfun", align 8
@__covrec_82806BDCC676AC9Eu = linkonce_odr hidden constant <{ i64, i32, i64, i64, [44 x i8] }> <{ i64 -9043109455793312610, i32 44, i64 -8617230451985595640, i64 1889826389874031115, [44 x i8] c"\01\01\05\0B\05\01\05\01\05\02\00\02\00\06\01'\05\0A6\02\0D \00#\0B\00'\00I\0F\01\17\00\1A\05\01\0E\00\0F\13\02\05\00\06" }>, section "__LLVM_COV,__llvm_covfun", align 8
@__covrec_8AD7B697A08EFFCAu = linkonce_odr hidden constant <{ i64, i32, i64, i64, [44 x i8] }> <{ i64 -8442078214132662326, i32 44, i64 -8617230451985595640, i64 1889826389874031115, [44 x i8] c"\01\01\05\0B\05\01\05\01\05\02\00\02\00\06\01'\05\0A6\02\0D \00#\0B\00'\00I\0F\01\17\00\1A\05\01\0E\00\0F\13\02\05\00\06" }>, section "__LLVM_COV,__llvm_covfun", align 8
@__covrec_A2FE9A724E39BD63u = linkonce_odr hidden constant <{ i64, i32, i64, i64, [9 x i8] }> <{ i64 -6701749379751363229, i32 9, i64 -6856040691413589372, i64 1889826389874031115, [9 x i8] c"\01\01\00\01\01-\11\003" }>, section "__LLVM_COV,__llvm_covfun", align 8
@__llvm_coverage_mapping = private constant { { i32, i32, i32, i32 }, [77 x i8] } { { i32, i32, i32, i32 } { i32 0, i32 77, i32 0, i32 5 }, [77 x i8] c"\02`Jx\DA\93\D6\0F-N-*\D6/.)M,*\D1wI-\D3/*-.\01\13\CEx\E4\F4KR\8BK\8A\F5\93\F3\CBR\8B\12\D3Sus\13\0B\80\EA\12KJ\8Bu\0BK\F3\F5\13\8B+\F3\92\8D\F4\8A\8A\01\CE<$D" }, section "__LLVM_COV,__llvm_covmap", align 8
@__llvm_profile_runtime = external hidden local_unnamed_addr global i32
@__profc__RNvCs4zUb9XLQiyW_6async214non_async_func = private global [2 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
@__profd__RNvCs4zUb9XLQiyW_6async214non_async_func = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 8809771948836895434, i64 -3630791716643471453, i64 sub (i64 ptrtoint (ptr @__profc__RNvCs4zUb9XLQiyW_6async214non_async_func to i64), i64 ptrtoint (ptr @__profd__RNvCs4zUb9XLQiyW_6async214non_async_func to i64)), ptr null, ptr null, i32 2, [2 x i16] zeroinitializer }, section "__DATA,__llvm_prf_data,regular,live_support", align 8
@__profc__RNvCs4zUb9XLQiyW_6async210async_func = private global [1 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
@__profd__RNvCs4zUb9XLQiyW_6async210async_func = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 3349877867264329306, i64 1759751756802921227, i64 sub (i64 ptrtoint (ptr @__profc__RNvCs4zUb9XLQiyW_6async210async_func to i64), i64 ptrtoint (ptr @__profd__RNvCs4zUb9XLQiyW_6async210async_func to i64)), ptr null, ptr null, i32 1, [2 x i16] zeroinitializer }, section "__DATA,__llvm_prf_data,regular,live_support", align 8
@__profc__RNCNvCs4zUb9XLQiyW_6async210async_func0B3_ = private global [2 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
@__profd__RNCNvCs4zUb9XLQiyW_6async210async_func0B3_ = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 6613298203987912612, i64 1759751756802921227, i64 sub (i64 ptrtoint (ptr @__profc__RNCNvCs4zUb9XLQiyW_6async210async_func0B3_ to i64), i64 ptrtoint (ptr @__profd__RNCNvCs4zUb9XLQiyW_6async210async_func0B3_ to i64)), ptr null, ptr null, i32 2, [2 x i16] zeroinitializer }, section "__DATA,__llvm_prf_data,regular,live_support", align 8
@__profc__RNvCs4zUb9XLQiyW_6async223async_func_just_println = private global [1 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
@__profd__RNvCs4zUb9XLQiyW_6async223async_func_just_println = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 -2186473077595825149, i64 155372126598700742, i64 sub (i64 ptrtoint (ptr @__profc__RNvCs4zUb9XLQiyW_6async223async_func_just_println to i64), i64 ptrtoint (ptr @__profd__RNvCs4zUb9XLQiyW_6async223async_func_just_println to i64)), ptr null, ptr null, i32 1, [2 x i16] zeroinitializer }, section "__DATA,__llvm_prf_data,regular,live_support", align 8
@__profc__RNCNvCs4zUb9XLQiyW_6async223async_func_just_println0B3_ = private global [1 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
@__profd__RNCNvCs4zUb9XLQiyW_6async223async_func_just_println0B3_ = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 -5836323174473821620, i64 155372126598700742, i64 sub (i64 ptrtoint (ptr @__profc__RNCNvCs4zUb9XLQiyW_6async223async_func_just_println0B3_ to i64), i64 ptrtoint (ptr @__profd__RNCNvCs4zUb9XLQiyW_6async223async_func_just_println0B3_ to i64)), ptr null, ptr null, i32 1, [2 x i16] zeroinitializer }, section "__DATA,__llvm_prf_data,regular,live_support", align 8
@__profc__RNvCs4zUb9XLQiyW_6async24main = private global [1 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
@__profd__RNvCs4zUb9XLQiyW_6async24main = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 4321483273282082325, i64 719582524320644771, i64 sub (i64 ptrtoint (ptr @__profc__RNvCs4zUb9XLQiyW_6async24main to i64), i64 ptrtoint (ptr @__profd__RNvCs4zUb9XLQiyW_6async24main to i64)), ptr null, ptr null, i32 1, [2 x i16] zeroinitializer }, section "__DATA,__llvm_prf_data,regular,live_support", align 8
@__profc__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_10async_func0EB4_ = private global [2 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
@__profd__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_10async_func0EB4_ = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 -9043109455793312610, i64 -8617230451985595640, i64 sub (i64 ptrtoint (ptr @__profc__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_10async_func0EB4_ to i64), i64 ptrtoint (ptr @__profd__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_10async_func0EB4_ to i64)), ptr null, ptr null, i32 2, [2 x i16] zeroinitializer }, section "__DATA,__llvm_prf_data,regular,live_support", align 8
@__profc__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_23async_func_just_println0EB4_ = private global [2 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
@__profd__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_23async_func_just_println0EB4_ = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 -8442078214132662326, i64 -8617230451985595640, i64 sub (i64 ptrtoint (ptr @__profc__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_23async_func_just_println0EB4_ to i64), i64 ptrtoint (ptr @__profd__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_23async_func_just_println0EB4_ to i64)), ptr null, ptr null, i32 2, [2 x i16] zeroinitializer }, section "__DATA,__llvm_prf_data,regular,live_support", align 8
@__profc__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLE0B7_ = private global [1 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
@__profd__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLE0B7_ = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 -5084377629573700230, i64 -6856040691413589372, i64 sub (i64 ptrtoint (ptr @__profc__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLE0B7_ to i64), i64 ptrtoint (ptr @__profd__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLE0B7_ to i64)), ptr null, ptr null, i32 1, [2 x i16] zeroinitializer }, section "__DATA,__llvm_prf_data,regular,live_support", align 8
@__profc__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs_0B7_ = private global [1 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
@__profd__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs_0B7_ = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 -4846665223620794463, i64 -6856040691413589372, i64 sub (i64 ptrtoint (ptr @__profc__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs_0B7_ to i64), i64 ptrtoint (ptr @__profd__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs_0B7_ to i64)), ptr null, ptr null, i32 1, [2 x i16] zeroinitializer }, section "__DATA,__llvm_prf_data,regular,live_support", align 8
@__profc__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs0_0B7_ = private global [1 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
@__profd__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs0_0B7_ = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 -6701749379751363229, i64 -6856040691413589372, i64 sub (i64 ptrtoint (ptr @__profc__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs0_0B7_ to i64), i64 ptrtoint (ptr @__profd__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs0_0B7_ to i64)), ptr null, ptr null, i32 1, [2 x i16] zeroinitializer }, section "__DATA,__llvm_prf_data,regular,live_support", align 8
@__profc__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs1_0B7_ = private global [1 x i64] zeroinitializer, section "__DATA,__llvm_prf_cnts", align 8
@__profd__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs1_0B7_ = private global { i64, i64, i64, ptr, ptr, i32, [2 x i16] } { i64 -626598601794277834, i64 -6856040691413589372, i64 sub (i64 ptrtoint (ptr @__profc__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs1_0B7_ to i64), i64 ptrtoint (ptr @__profd__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs1_0B7_ to i64)), ptr null, ptr null, i32 1, [2 x i16] zeroinitializer }, section "__DATA,__llvm_prf_data,regular,live_support", align 8
@__llvm_prf_nm = private constant [167 x i8] c"\9D\05\A3\01x\DA\8B\0F\F2+s.6\A9\0AM\B2\8C\F0\09\CC\AC\0C\8F7K,\AE\CCK624\C9\CB\CF\8B\07\B3\E3\D3J\F3\92\19\E3q\AA4@U\E5L\84:\03'\E3x\DC&\1A\19#T\C6g\95\16\97\C4\17\14e\E6\95\E4\E4\E13\1E\A7&\FCv\99\E4&f\82\CC\F5\F4+\F3+\C1\AA\C2\22\B5\225\B9\B4$\BF\C8\22)'?9;>?\0F\E4\06'\93x\14\0F\B9\02\05\C83\06\B7\C3\A1f\82\D4\91`\ACYX\88\A3\93\8F\AB\81\939\F9\9A\8B\E3)\D3n@\A1~C\B0~\00tI\EC\85", section "__DATA,__llvm_prf_names", align 1
@__llvm_profile_filename = weak hidden local_unnamed_addr constant [22 x i8] c"default_%m_%p.profraw\00"
@llvm.used = appending global [14 x ptr] [ptr @__covrec_2E7D282BFF3BC65Au, ptr @__covrec_3BF8FE240EC55615u, ptr @__covrec_5BC727AD826DA7A4u, ptr @__covrec_7A4298E94A9FBACAu, ptr @__covrec_82806BDCC676AC9Eu, ptr @__covrec_8AD7B697A08EFFCAu, ptr @__covrec_A2FE9A724E39BD63u, ptr @__covrec_AF0136FEB71B924Cu, ptr @__covrec_B970A97BED51257Au, ptr @__covrec_BCBD2FA868D7E7A1u, ptr @__covrec_E1A8165202F21C03u, ptr @__covrec_F74DDFE43B4BAE36u, ptr @__llvm_coverage_mapping, ptr @__llvm_prf_nm], section "llvm.metadata"
@llvm.compiler.used = appending global [13 x ptr] [ptr @__llvm_profile_runtime_user, ptr @__profd__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_10async_func0EB4_, ptr @__profd__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_23async_func_just_println0EB4_, ptr @__profd__RNCNvCs4zUb9XLQiyW_6async210async_func0B3_, ptr @__profd__RNCNvCs4zUb9XLQiyW_6async223async_func_just_println0B3_, ptr @__profd__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLE0B7_, ptr @__profd__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs0_0B7_, ptr @__profd__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs1_0B7_, ptr @__profd__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs_0B7_, ptr @__profd__RNvCs4zUb9XLQiyW_6async210async_func, ptr @__profd__RNvCs4zUb9XLQiyW_6async214non_async_func, ptr @__profd__RNvCs4zUb9XLQiyW_6async223async_func_just_println, ptr @__profd__RNvCs4zUb9XLQiyW_6async24main], section "llvm.metadata"
; std::rt::lang_start::<()>
; Function Attrs: uwtable
define hidden noundef i64 @_RINvNtCs8koKRe9ETht_3std2rt10lang_startuECs4zUb9XLQiyW_6async2(ptr noundef nonnull %main, i64 noundef %argc, ptr noundef %argv, i8 noundef %sigpipe) unnamed_addr #0 {
start:
%_8 = alloca ptr, align 8
call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_8)
store ptr %main, ptr %_8, align 8
; call std::rt::lang_start_internal
%0 = call noundef i64 @_ZN3std2rt19lang_start_internal17he54ad6d8e161668fE(ptr noundef nonnull align 1 %_8, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @vtable.0, i64 noundef %argc, ptr noundef %argv, i8 noundef %sigpipe)
call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_8)
ret i64 %0
}
; core::ptr::drop_in_place::<std::rt::lang_start<()>::{closure#0}>
; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable
define internal void @_RINvNtCscBXtjtswptt_4core3ptr13drop_in_placeNCINvNtCs8koKRe9ETht_3std2rt10lang_startuE0ECs4zUb9XLQiyW_6async2(ptr noalias nocapture readnone align 8 %_1) unnamed_addr #1 {
start:
ret void
}
; core::ptr::drop_in_place::<core::task::wake::Waker>
; Function Attrs: uwtable
define internal fastcc void @_RINvNtCscBXtjtswptt_4core3ptr13drop_in_placeNtNtNtB4_4task4wake5WakerECs4zUb9XLQiyW_6async2(ptr noalias nocapture noundef readonly align 8 dereferenceable(16) %_1) unnamed_addr #0 {
start:
tail call void @llvm.experimental.noalias.scope.decl(metadata !3)
%_4.i = load ptr, ptr %_1, align 8, !alias.scope !3, !nonnull !6, !align !7, !noundef !6
%0 = getelementptr inbounds %"core::task::wake::RawWakerVTable", ptr %_4.i, i64 0, i32 3
%_2.i = load ptr, ptr %0, align 8, !noalias !3, !nonnull !6, !noundef !6
%1 = getelementptr inbounds { ptr, ptr }, ptr %_1, i64 0, i32 1
%_3.i = load ptr, ptr %1, align 8, !alias.scope !3, !noundef !6
tail call void %_2.i(ptr noundef %_3.i), !noalias !3
ret void
}
; std::sys_common::backtrace::__rust_begin_short_backtrace::<fn(), ()>
; Function Attrs: noinline uwtable
define internal fastcc void @_RINvNtNtCs8koKRe9ETht_3std10sys_common9backtrace28___rust_begin_short_backtraceFEuuECs4zUb9XLQiyW_6async2(ptr nocapture noundef nonnull readonly %f) unnamed_addr #2 {
start:
tail call void %f()
tail call void asm sideeffect "", "~{memory}"() #11, !srcloc !8
ret void
}
; std::rt::lang_start::<()>::{closure#0}
; Function Attrs: inlinehint uwtable
define internal noundef i32 @_RNCINvNtCs8koKRe9ETht_3std2rt10lang_startuE0Cs4zUb9XLQiyW_6async2(ptr noalias nocapture noundef readonly align 8 dereferenceable(8) %_1) unnamed_addr #3 {
start:
%_4 = load ptr, ptr %_1, align 8, !nonnull !6, !noundef !6
; call std::sys_common::backtrace::__rust_begin_short_backtrace::<fn(), ()>
tail call fastcc void @_RINvNtNtCs8koKRe9ETht_3std10sys_common9backtrace28___rust_begin_short_backtraceFEuuECs4zUb9XLQiyW_6async2(ptr noundef nonnull %_4)
ret i32 0
}
; <std::rt::lang_start<()>::{closure#0} as core::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
; Function Attrs: inlinehint uwtable
define internal noundef i32 @_RNSNvYNCINvNtCs8koKRe9ETht_3std2rt10lang_startuE0INtNtNtCscBXtjtswptt_4core3ops8function6FnOnceuE9call_once6vtableCs4zUb9XLQiyW_6async2(ptr nocapture noundef readonly %_1) unnamed_addr #3 personality ptr @rust_eh_personality {
start:
%0 = load ptr, ptr %_1, align 8, !nonnull !6, !noundef !6
; call std::sys_common::backtrace::__rust_begin_short_backtrace::<fn(), ()>
tail call fastcc void @_RINvNtNtCs8koKRe9ETht_3std10sys_common9backtrace28___rust_begin_short_backtraceFEuuECs4zUb9XLQiyW_6async2(ptr noundef nonnull %0), !noalias !9
ret i32 0
}
; <async2::executor::block_on::VTABLE::{closure#0} as core::ops::function::FnOnce<(*const (),)>>::call_once
; Function Attrs: inlinehint mustprogress nofree norecurse noreturn nosync nounwind willreturn memory(none) uwtable
define internal { ptr, ptr } @_RNvYNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLE0INtNtNtCscBXtjtswptt_4core3ops8function6FnOnceTPuEE9call_onceBa_(ptr nocapture readnone %0) unnamed_addr #4 personality ptr @rust_eh_personality {
start:
unreachable
}
; <async2::executor::block_on::VTABLE::{closure#2} as core::ops::function::FnOnce<(*const (),)>>::call_once
; Function Attrs: inlinehint mustprogress nofree norecurse noreturn nosync nounwind willreturn memory(none) uwtable
define internal void @_RNvYNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs0_0INtNtNtCscBXtjtswptt_4core3ops8function6FnOnceTPuEE9call_onceBa_(ptr nocapture readnone %0) unnamed_addr #4 personality ptr @rust_eh_personality {
start:
unreachable
}
; <async2::executor::block_on::VTABLE::{closure#3} as core::ops::function::FnOnce<(*const (),)>>::call_once
; Function Attrs: inlinehint mustprogress nofree norecurse nounwind willreturn memory(readwrite, argmem: none, inaccessiblemem: none) uwtable
define internal void @_RNvYNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs1_0INtNtNtCscBXtjtswptt_4core3ops8function6FnOnceTPuEE9call_onceBa_(ptr nocapture readnone %0) unnamed_addr #5 personality ptr @rust_eh_personality {
start:
%1 = atomicrmw add ptr @__profc__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs1_0B7_, i64 1 monotonic, align 8
ret void
}
; async2::main
; Function Attrs: uwtable
define internal void @_RNvCs4zUb9XLQiyW_6async24main() unnamed_addr #0 personality ptr @rust_eh_personality {
start:
%_4.i.i2 = alloca %"core::fmt::Arguments<'_>", align 8
%waker.i3 = alloca { ptr, ptr }, align 8
%_8.i.i = alloca %"core::fmt::Arguments<'_>", align 8
%_4.i.i = alloca %"core::fmt::Arguments<'_>", align 8
%waker.i = alloca { ptr, ptr }, align 8
%_5.i = alloca %"core::fmt::Arguments<'_>", align 8
%_2.i = alloca %"core::fmt::Arguments<'_>", align 8
%_2 = alloca %"core::fmt::Arguments<'_>", align 8
%0 = atomicrmw add ptr @__profc__RNvCs4zUb9XLQiyW_6async24main, i64 1 monotonic, align 8
call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_2)
store ptr @alloc_8c6fa871f2b6ccc3596c5d8143fd3c62, ptr %_2, align 8
%1 = getelementptr inbounds { ptr, i64 }, ptr %_2, i64 0, i32 1
store i64 1, ptr %1, align 8
%2 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_2, i64 0, i32 2
store ptr null, ptr %2, align 8
%3 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_2, i64 0, i32 1
store ptr @alloc_513570631223a12912d85da2bec3b15a, ptr %3, align 8
%4 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_2, i64 0, i32 1, i32 1
store i64 0, ptr %4, align 8
; call std::io::stdio::_print
call void @_ZN3std2io5stdio6_print17h159df1e36ccb658eE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_2)
call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %_2)
%5 = atomicrmw add ptr @__profc__RNvCs4zUb9XLQiyW_6async214non_async_func, i64 1 monotonic, align 8
call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_2.i)
store ptr @alloc_a921d308b684528df82f6e4dffdb80bd, ptr %_2.i, align 8
%6 = getelementptr inbounds { ptr, i64 }, ptr %_2.i, i64 0, i32 1
store i64 1, ptr %6, align 8
%7 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_2.i, i64 0, i32 2
store ptr null, ptr %7, align 8
%8 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_2.i, i64 0, i32 1
store ptr @alloc_513570631223a12912d85da2bec3b15a, ptr %8, align 8
%9 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_2.i, i64 0, i32 1, i32 1
store i64 0, ptr %9, align 8
; call std::io::stdio::_print
call void @_ZN3std2io5stdio6_print17h159df1e36ccb658eE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_2.i)
call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %_2.i)
%10 = atomicrmw add ptr getelementptr inbounds ([2 x i64], ptr @__profc__RNvCs4zUb9XLQiyW_6async214non_async_func, i64 0, i64 1), i64 1 monotonic, align 8
call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_5.i)
store ptr @alloc_beefbc7dab13e3fb922964c749019704, ptr %_5.i, align 8
%11 = getelementptr inbounds { ptr, i64 }, ptr %_5.i, i64 0, i32 1
store i64 1, ptr %11, align 8
%12 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_5.i, i64 0, i32 2
store ptr null, ptr %12, align 8
%13 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_5.i, i64 0, i32 1
store ptr @alloc_513570631223a12912d85da2bec3b15a, ptr %13, align 8
%14 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_5.i, i64 0, i32 1, i32 1
store i64 0, ptr %14, align 8
; call std::io::stdio::_print
call void @_ZN3std2io5stdio6_print17h159df1e36ccb658eE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_5.i)
call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %_5.i)
%15 = atomicrmw add ptr @__profc__RNvCs4zUb9XLQiyW_6async210async_func, i64 1 monotonic, align 8
%16 = atomicrmw add ptr @__profc__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_10async_func0EB4_, i64 1 monotonic, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %waker.i)
store ptr @_RNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLE, ptr %waker.i, align 8
%17 = getelementptr inbounds { ptr, ptr }, ptr %waker.i, i64 0, i32 1
store ptr null, ptr %17, align 8
%18 = atomicrmw add ptr @__profc__RNCNvCs4zUb9XLQiyW_6async210async_func0B3_, i64 1 monotonic, align 8
call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_4.i.i)
store ptr @alloc_bb9cfe869d3fbd1b0bac54c64137be2e, ptr %_4.i.i, align 8, !alias.scope !12, !noalias !15
%19 = getelementptr inbounds { ptr, i64 }, ptr %_4.i.i, i64 0, i32 1
store i64 1, ptr %19, align 8, !alias.scope !12, !noalias !15
%20 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_4.i.i, i64 0, i32 2
store ptr null, ptr %20, align 8, !alias.scope !12, !noalias !15
%21 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_4.i.i, i64 0, i32 1
store ptr @alloc_513570631223a12912d85da2bec3b15a, ptr %21, align 8, !alias.scope !12, !noalias !15
%22 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_4.i.i, i64 0, i32 1, i32 1
store i64 0, ptr %22, align 8, !alias.scope !12, !noalias !15
; invoke std::io::stdio::_print
invoke void @_ZN3std2io5stdio6_print17h159df1e36ccb658eE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_4.i.i)
to label %bb5.i.i unwind label %cleanup1.i.i
cleanup1.i.i: ; preds = %start
%23 = landingpad { ptr, i32 }
cleanup
call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %_4.i.i)
br label %cleanup.body.i
bb5.i.i: ; preds = %start
call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %_4.i.i)
%24 = atomicrmw add ptr getelementptr inbounds ([2 x i64], ptr @__profc__RNCNvCs4zUb9XLQiyW_6async210async_func0B3_, i64 0, i64 1), i64 1 monotonic, align 8
call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_8.i.i)
store ptr @alloc_8a2eecf69e2fc1f364ea48da3a4d02ff, ptr %_8.i.i, align 8, !alias.scope !17, !noalias !20
%25 = getelementptr inbounds { ptr, i64 }, ptr %_8.i.i, i64 0, i32 1
store i64 1, ptr %25, align 8, !alias.scope !17, !noalias !20
%26 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i, i64 0, i32 2
store ptr null, ptr %26, align 8, !alias.scope !17, !noalias !20
%27 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i, i64 0, i32 1
store ptr @alloc_513570631223a12912d85da2bec3b15a, ptr %27, align 8, !alias.scope !17, !noalias !20
%28 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_8.i.i, i64 0, i32 1, i32 1
store i64 0, ptr %28, align 8, !alias.scope !17, !noalias !20
; invoke std::io::stdio::_print
invoke void @_ZN3std2io5stdio6_print17h159df1e36ccb658eE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_8.i.i)
to label %_RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_10async_func0EB4_.exit unwind label %cleanup3.i.i
cleanup3.i.i: ; preds = %bb5.i.i
%29 = landingpad { ptr, i32 }
cleanup
call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %_8.i.i)
br label %cleanup.body.i
cleanup.body.i: ; preds = %cleanup3.i.i, %cleanup1.i.i
%.pn6.pn.i.i = phi { ptr, i32 } [ %29, %cleanup3.i.i ], [ %23, %cleanup1.i.i ]
; invoke core::ptr::drop_in_place::<core::task::wake::Waker>
invoke fastcc void @_RINvNtCscBXtjtswptt_4core3ptr13drop_in_placeNtNtNtB4_4task4wake5WakerECs4zUb9XLQiyW_6async2(ptr noalias noundef nonnull align 8 dereferenceable(16) %waker.i) #9
to label %common.resume unwind label %terminate.i
terminate.i: ; preds = %cleanup.body.i
%30 = landingpad { ptr, i32 }
filter [0 x ptr] zeroinitializer
; call core::panicking::panic_in_cleanup
tail call void @_ZN4core9panicking16panic_in_cleanup17h79e82dd57955c40cE() #12
unreachable
common.resume: ; preds = %cleanup.body.i4, %cleanup.body.i
%common.resume.op = phi { ptr, i32 } [ %.pn6.pn.i.i, %cleanup.body.i ], [ %40, %cleanup.body.i4 ]
resume { ptr, i32 } %common.resume.op
_RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_10async_func0EB4_.exit: ; preds = %bb5.i.i
call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %_8.i.i)
%31 = atomicrmw add ptr @__profc__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs1_0B7_, i64 1 monotonic, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %waker.i)
%32 = atomicrmw add ptr @__profc__RNvCs4zUb9XLQiyW_6async223async_func_just_println, i64 1 monotonic, align 8
%33 = atomicrmw add ptr @__profc__RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_23async_func_just_println0EB4_, i64 1 monotonic, align 8
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %waker.i3)
store ptr @_RNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLE, ptr %waker.i3, align 8
%34 = getelementptr inbounds { ptr, ptr }, ptr %waker.i3, i64 0, i32 1
store ptr null, ptr %34, align 8
%35 = atomicrmw add ptr @__profc__RNCNvCs4zUb9XLQiyW_6async223async_func_just_println0B3_, i64 1 monotonic, align 8
call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %_4.i.i2)
store ptr @alloc_228521f8fdd0525c9bea7f9192a53491, ptr %_4.i.i2, align 8, !alias.scope !22, !noalias !25
%36 = getelementptr inbounds { ptr, i64 }, ptr %_4.i.i2, i64 0, i32 1
store i64 1, ptr %36, align 8, !alias.scope !22, !noalias !25
%37 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_4.i.i2, i64 0, i32 2
store ptr null, ptr %37, align 8, !alias.scope !22, !noalias !25
%38 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_4.i.i2, i64 0, i32 1
store ptr @alloc_513570631223a12912d85da2bec3b15a, ptr %38, align 8, !alias.scope !22, !noalias !25
%39 = getelementptr inbounds %"core::fmt::Arguments<'_>", ptr %_4.i.i2, i64 0, i32 1, i32 1
store i64 0, ptr %39, align 8, !alias.scope !22, !noalias !25
; invoke std::io::stdio::_print
invoke void @_ZN3std2io5stdio6_print17h159df1e36ccb658eE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %_4.i.i2)
to label %_RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_23async_func_just_println0EB4_.exit unwind label %cleanup.body.i4
cleanup.body.i4: ; preds = %_RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_10async_func0EB4_.exit
%40 = landingpad { ptr, i32 }
cleanup
call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %_4.i.i2)
; invoke core::ptr::drop_in_place::<core::task::wake::Waker>
invoke fastcc void @_RINvNtCscBXtjtswptt_4core3ptr13drop_in_placeNtNtNtB4_4task4wake5WakerECs4zUb9XLQiyW_6async2(ptr noalias noundef nonnull align 8 dereferenceable(16) %waker.i3) #9
to label %common.resume unwind label %terminate.i5
terminate.i5: ; preds = %cleanup.body.i4
%41 = landingpad { ptr, i32 }
filter [0 x ptr] zeroinitializer
; call core::panicking::panic_in_cleanup
tail call void @_ZN4core9panicking16panic_in_cleanup17h79e82dd57955c40cE() #12
unreachable
_RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_23async_func_just_println0EB4_.exit: ; preds = %_RINvNtCs4zUb9XLQiyW_6async28executor8block_onNCNvB4_10async_func0EB4_.exit
call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %_4.i.i2)
%42 = atomicrmw add ptr @__profc__RNCNvNvNtCs4zUb9XLQiyW_6async28executor8block_on6VTABLEs1_0B7_, i64 1 monotonic, align 8
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %waker.i3)
ret void
}
; std::rt::lang_start_internal
; Function Attrs: uwtable
declare noundef i64 @_ZN3std2rt19lang_start_internal17he54ad6d8e161668fE(ptr noundef nonnull align 1, ptr noalias noundef readonly align 8 dereferenceable(24), i64 noundef, ptr noundef, i8 noundef) unnamed_addr #0
; Function Attrs: uwtable
declare noundef i32 @rust_eh_personality(i32 noundef, i32 noundef, i64 noundef, ptr noundef, ptr noundef) unnamed_addr #0
; std::io::stdio::_print
; Function Attrs: uwtable
declare void @_ZN3std2io5stdio6_print17h159df1e36ccb658eE(ptr noalias nocapture noundef align 8 dereferenceable(48)) unnamed_addr #0
; core::panicking::panic_in_cleanup
; Function Attrs: cold noinline noreturn nounwind uwtable
declare void @_ZN4core9panicking16panic_in_cleanup17h79e82dd57955c40cE() unnamed_addr #6
define i32 @main(i32 %0, ptr %1) unnamed_addr #7 {
top:
%_8.i = alloca ptr, align 8
%2 = sext i32 %0 to i64
call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %_8.i)
store ptr @_RNvCs4zUb9XLQiyW_6async24main, ptr %_8.i, align 8
; call std::rt::lang_start_internal
%3 = call noundef i64 @_ZN3std2rt19lang_start_internal17he54ad6d8e161668fE(ptr noundef nonnull align 1 %_8.i, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @vtable.0, i64 noundef %2, ptr noundef %1, i8 noundef 0)
call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %_8.i)
%4 = trunc i64 %3 to i32
ret i32 %4
}
; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #8
; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #8
; Function Attrs: noinline
define linkonce_odr hidden i32 @__llvm_profile_runtime_user() #9 {
%1 = load i32, ptr @__llvm_profile_runtime, align 4
ret i32 %1
}
; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite)
declare void @llvm.experimental.noalias.scope.decl(metadata) #10
attributes #0 = { uwtable "frame-pointer"="non-leaf" "target-cpu"="apple-m1" }
attributes #1 = { inlinehint mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "frame-pointer"="non-leaf" "target-cpu"="apple-m1" }
attributes #2 = { noinline uwtable "frame-pointer"="non-leaf" "target-cpu"="apple-m1" }
attributes #3 = { inlinehint uwtable "frame-pointer"="non-leaf" "target-cpu"="apple-m1" }
attributes #4 = { inlinehint mustprogress nofree norecurse noreturn nosync nounwind willreturn memory(none) uwtable "frame-pointer"="non-leaf" "target-cpu"="apple-m1" }
attributes #5 = { inlinehint mustprogress nofree norecurse nounwind willreturn memory(readwrite, argmem: none, inaccessiblemem: none) uwtable "frame-pointer"="non-leaf" "target-cpu"="apple-m1" }
attributes #6 = { cold noinline noreturn nounwind uwtable "frame-pointer"="non-leaf" "target-cpu"="apple-m1" }
attributes #7 = { "frame-pointer"="non-leaf" "target-cpu"="apple-m1" }
attributes #8 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { noinline }
attributes #10 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) }
attributes #11 = { nounwind }
attributes #12 = { noinline noreturn nounwind }
!llvm.module.flags = !{!0, !1}
!llvm.ident = !{!2}
!0 = !{i32 8, !"PIC Level", i32 2}
!1 = !{i32 7, !"PIE Level", i32 2}
!2 = !{!"rustc version 1.74.0-dev"}
!3 = !{!4}
!4 = distinct !{!4, !5, !"_ZN65_$LT$core..task..wake..Waker$u20$as$u20$core..ops..drop..Drop$GT$4drop17h46a336b29aede688E: %self"}
!5 = distinct !{!5, !"_ZN65_$LT$core..task..wake..Waker$u20$as$u20$core..ops..drop..Drop$GT$4drop17h46a336b29aede688E"}
!6 = !{}
!7 = !{i64 8}
!8 = !{i32 587843}
!9 = !{!10}
!10 = distinct !{!10, !11, !"_RNCINvNtCs8koKRe9ETht_3std2rt10lang_startuE0Cs4zUb9XLQiyW_6async2: %_1"}
!11 = distinct !{!11, !"_RNCINvNtCs8koKRe9ETht_3std2rt10lang_startuE0Cs4zUb9XLQiyW_6async2"}
!12 = !{!13}
!13 = distinct !{!13, !14, !"_ZN4core3fmt9Arguments9new_const17h4dfb0a79b9637285E: %_0"}
!14 = distinct !{!14, !"_ZN4core3fmt9Arguments9new_const17h4dfb0a79b9637285E"}
!15 = !{!16}
!16 = distinct !{!16, !14, !"_ZN4core3fmt9Arguments9new_const17h4dfb0a79b9637285E: %pieces.0"}
!17 = !{!18}
!18 = distinct !{!18, !19, !"_ZN4core3fmt9Arguments9new_const17h4dfb0a79b9637285E: %_0"}
!19 = distinct !{!19, !"_ZN4core3fmt9Arguments9new_const17h4dfb0a79b9637285E"}
!20 = !{!21}
!21 = distinct !{!21, !19, !"_ZN4core3fmt9Arguments9new_const17h4dfb0a79b9637285E: %pieces.0"}
!22 = !{!23}
!23 = distinct !{!23, !24, !"_ZN4core3fmt9Arguments9new_const17h4dfb0a79b9637285E: %_0"}
!24 = distinct !{!24, !"_ZN4core3fmt9Arguments9new_const17h4dfb0a79b9637285E"}
!25 = !{!26}
!26 = distinct !{!26, !24, !"_ZN4core3fmt9Arguments9new_const17h4dfb0a79b9637285E: %pieces.0"} |
Comparing the two LLVM IR dumps, it seems that the bodies for closure 0 are identical, and the bodies for closure 2 are identical. (Closure 1 is missing in both, presumably because it was merged with closure 2.) So that's evidence against my hypothesis of the unreachable-only body being responsible. |
If I set If I go into |
OK, I think I've found the problem. If we instrument a function for coverage, but a MIR optimization later removes all of its A proper fix will need to wait until after #116046. Until then, the workaround is to avoid deleting |
Actually, a better workaround is probably just to disable the impl MirPass<'_> for UnreachablePropagation {
fn is_enabled(&self, sess: &rustc_session::Session) -> bool {
// Enable only under -Zmir-opt-level=2 as this can make programs less debuggable.
// Coverage gets confused by MIR passes that can remove all coverage statements
// from an instrumented function.
sess.mir_opt_level() >= 2 && !sess.instrument_coverage()
} |
The changes in #113970 ended up changing the coverage mappings for
tests/coverage-map/status-quo/async2.rs
, but only on some targets.I wanted to create a place to put my notes from investigating that, without gunking up the original PR.
@rustbot label +A-code-coverage
The text was updated successfully, but these errors were encountered: