Skip to content

Instantly share code, notes, and snippets.

@avikivity
Created August 13, 2024 09:43
Show Gist options
  • Save avikivity/ee2e860be4dd5179b9f8ee70a2e9f487 to your computer and use it in GitHub Desktop.
Save avikivity/ee2e860be4dd5179b9f8ee70a2e9f487 to your computer and use it in GitHub Desktop.
#7 0x00000000117bea43 in (anonymous namespace)::PGOUseFunc::setBranchWeights (this=0x7ffff5ded4f0) at /home/avi/llvm-project/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp:1587
1587 EdgeCounts[SuccNum] = EdgeCount;
(gdb) p BB.getParent()->dump()
; Function Attrs: mustprogress nounwind presplitcoroutine uwtable
define linkonce_odr hidden void @_ZN7seastar12input_streamIcE17read_exactly_partEm(ptr dead_on_unwind writable sret(%"class.seastar::future.0") align 8 %0, ptr noundef nonnull align 8 dereferenceable(25) %1, i64 noundef %2) #8 comdat align 2 personality ptr @__gxx_personality_v0 !dbg !491 !prof !505 !type !450 {
%4 = alloca %"class.seastar::internal::coroutine_traits_base<seastar::temporary_buffer<char>>::promise_type", align 8
%5 = alloca %"class.seastar::temporary_buffer", align 8
%6 = alloca %"class.seastar::temporary_buffer", align 8
%7 = alloca %"struct.seastar::internal::awaiter", align 8
%8 = alloca %"class.seastar::future.0", align 8
tail call void @llvm.dbg.value(metadata ptr %1, metadata !493, metadata !DIExpression()), !dbg !506
tail call void @llvm.dbg.value(metadata i64 %2, metadata !494, metadata !DIExpression()), !dbg !506
%9 = call token @llvm.coro.id(i32 16, ptr nonnull %4, ptr nonnull @_ZN7seastar12input_streamIcE17read_exactly_partEm, ptr null), !dbg !507
%10 = call i1 @llvm.coro.alloc(token %9), !dbg !507
br i1 %10, label %11, label %14, !dbg !507, !prof !508
11: ; preds = %3
%12 = call i64 @llvm.coro.size.i64(), !dbg !509
%13 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %12) #20
to label %14 unwind label %208, !dbg !509, !prof !510
14: ; preds = %11, %3
%15 = phi ptr [ null, %3 ], [ %13, %11 ], !dbg !507
%16 = call ptr @llvm.coro.begin(token %9, ptr %15) #21, !dbg !507
tail call void @llvm.dbg.value(metadata i64 %2, metadata !494, metadata !DIExpression()), !dbg !506
call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #10, !dbg !509
call void @llvm.dbg.declare(metadata ptr %4, metadata !495, metadata !DIExpression()), !dbg !506
call void @llvm.dbg.value(metadata ptr %4, metadata !511, metadata !DIExpression()), !dbg !516
call void @llvm.dbg.value(metadata ptr %4, metadata !518, metadata !DIExpression()), !dbg !522
%17 = getelementptr inbounds %"class.seastar::promise", ptr %4, i64 0, i32 1, !dbg !524
call void @llvm.dbg.value(metadata ptr %4, metadata !525, metadata !DIExpression()), !dbg !530
call void @llvm.dbg.value(metadata ptr %17, metadata !528, metadata !DIExpression()), !dbg !530
call void @llvm.dbg.value(metadata ptr %4, metadata !532, metadata !DIExpression()), !dbg !536
call void @llvm.dbg.value(metadata ptr %17, metadata !535, metadata !DIExpression()), !dbg !536
call void @llvm.dbg.value(metadata ptr %17, metadata !538, metadata !DIExpression()), !dbg !541
call void @llvm.dbg.value(metadata ptr %17, metadata !543, metadata !DIExpression()), !dbg !549
call void @_ZN7seastar17future_state_base3anyC1Ev(ptr noundef nonnull align 4 dereferenceable(4) %17) #10, !dbg !551
call void @llvm.dbg.value(metadata ptr %17, metadata !552, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)), !dbg !560
call void @llvm.dbg.value(metadata ptr %17, metadata !562, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)), !dbg !566
call void @llvm.dbg.value(metadata ptr %17, metadata !568, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)), !dbg !572
call void @_ZN7seastar8internal21coroutine_traits_baseINS_16temporary_bufferIcEEE12promise_type17get_return_objectEv(ptr dead_on_unwind writable sret(%"class.seastar::future.0") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %4) #10, !dbg !509
call void @_ZN7seastar8internal21coroutine_traits_baseINS_16temporary_bufferIcEEE12promise_type15initial_suspendEv(ptr noundef nonnull align 8 dereferenceable(32) %4) #10, !dbg !509
tail call void @llvm.dbg.value(metadata ptr undef, metadata !574, metadata !DIExpression()), !dbg !578
tail call void @llvm.dbg.value(metadata ptr undef, metadata !580, metadata !DIExpression()), !dbg !583
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5) #10, !dbg !585
call void @llvm.dbg.declare(metadata ptr %5, metadata !496, metadata !DIExpression()), !dbg !586
call void @llvm.dbg.value(metadata ptr %5, metadata !587, metadata !DIExpression()), !dbg !592
call void @llvm.dbg.value(metadata i64 %2, metadata !590, metadata !DIExpression()), !dbg !592
%18 = getelementptr inbounds %"class.seastar::temporary_buffer", ptr %5, i64 0, i32 1, !dbg !594
%19 = load ptr, ptr %5, align 8, !dbg !595, !tbaa !596
invoke void @_ZN7seastar17make_free_deleterEPv(ptr dead_on_unwind nonnull writable sret(%"class.seastar::deleter") align 8 %18, ptr noundef %19)
to label %20 unwind label %46, !dbg !599, !prof !600
20: ; preds = %14, %130
%21 = phi i64 [ %131, %130 ], [ undef, %14 ]
tail call void @llvm.dbg.value(metadata i64 %21, metadata !498, metadata !DIExpression()), !dbg !601
%22 = icmp ult i64 %21, %2, !dbg !602
br i1 %22, label %23, label %150, !dbg !603, !prof !604
23: ; preds = %20
%24 = call noundef i64 @_ZN7seastar12input_streamIcE9availableEv(ptr noundef nonnull align 8 dereferenceable(25) %1) #10, !dbg !605
tail call void @llvm.dbg.value(metadata i64 %24, metadata !499, metadata !DIExpression()), !dbg !606
%25 = icmp eq i64 %24, 0, !dbg !607
br i1 %25, label %48, label %26, !dbg !608, !prof !609
26: ; preds = %23
tail call void @llvm.dbg.value(metadata i64 %21, metadata !610, metadata !DIExpression()), !dbg !618
tail call void @llvm.dbg.value(metadata i64 %24, metadata !615, metadata !DIExpression()), !dbg !618
tail call void @llvm.dbg.value(metadata i64 %21, metadata !501, metadata !DIExpression()), !dbg !620
%27 = getelementptr inbounds %"class.seastar::input_stream", ptr %1, i64 0, i32 2, !dbg !621
%28 = call noundef ptr @_ZN7seastar16temporary_bufferIcE3getEv(ptr noundef nonnull align 8 dereferenceable(16) %27) #10, !dbg !622
%29 = call noundef ptr @_ZN7seastar16temporary_bufferIcE9get_writeEv(ptr noundef nonnull align 8 dereferenceable(16) %5) #10, !dbg !623
call void @llvm.dbg.value(metadata ptr %28, metadata !624, metadata !DIExpression()), !dbg !636
call void @llvm.dbg.value(metadata i64 %21, metadata !629, metadata !DIExpression()), !dbg !636
call void @llvm.dbg.value(metadata ptr %29, metadata !630, metadata !DIExpression()), !dbg !636
call void @llvm.dbg.value(metadata i64 %21, metadata !631, metadata !DIExpression()), !dbg !636
%30 = icmp eq i64 %21, 0, !dbg !638
br i1 %30, label %42, label %31, !dbg !640, !prof !641
31: ; preds = %26
call void @llvm.dbg.value(metadata ptr %28, metadata !642, metadata !DIExpression()), !dbg !654
call void @llvm.dbg.value(metadata ptr %28, metadata !656, metadata !DIExpression()), !dbg !666
call void @llvm.dbg.value(metadata i64 %21, metadata !661, metadata !DIExpression()), !dbg !666
call void @llvm.dbg.value(metadata ptr %29, metadata !662, metadata !DIExpression()), !dbg !666
call void @llvm.dbg.declare(metadata ptr undef, metadata !663, metadata !DIExpression()), !dbg !668
call void @llvm.dbg.value(metadata ptr %28, metadata !669, metadata !DIExpression()), !dbg !679
call void @llvm.dbg.value(metadata ptr %28, metadata !674, metadata !DIExpression()), !dbg !679
call void @llvm.dbg.value(metadata ptr %29, metadata !675, metadata !DIExpression()), !dbg !679
call void @llvm.dbg.value(metadata ptr %28, metadata !681, metadata !DIExpression()), !dbg !688
call void @llvm.dbg.value(metadata ptr %28, metadata !684, metadata !DIExpression()), !dbg !688
call void @llvm.dbg.value(metadata ptr %29, metadata !685, metadata !DIExpression()), !dbg !688
%32 = call noundef ptr @_ZSt12__niter_baseIPKcET_S2_(ptr noundef %28) #10, !dbg !690
call void @llvm.dbg.value(metadata ptr %28, metadata !691, metadata !DIExpression()), !dbg !696
call void @llvm.dbg.value(metadata ptr %32, metadata !694, metadata !DIExpression()), !dbg !696
call void @llvm.dbg.value(metadata ptr %29, metadata !695, metadata !DIExpression()), !dbg !696
call void @llvm.dbg.value(metadata ptr %28, metadata !698, metadata !DIExpression()), !dbg !703
call void @llvm.dbg.value(metadata ptr %32, metadata !701, metadata !DIExpression()), !dbg !703
call void @llvm.dbg.value(metadata ptr %29, metadata !702, metadata !DIExpression()), !dbg !703
call void @llvm.dbg.value(metadata ptr %28, metadata !705, metadata !DIExpression()), !dbg !720
call void @llvm.dbg.value(metadata ptr %32, metadata !715, metadata !DIExpression()), !dbg !720
call void @llvm.dbg.value(metadata ptr %29, metadata !716, metadata !DIExpression()), !dbg !720
%33 = ptrtoint ptr %32 to i64, !dbg !722
%34 = ptrtoint ptr %28 to i64, !dbg !722
%35 = sub i64 %33, %34, !dbg !722
call void @llvm.dbg.value(metadata i64 %35, metadata !717, metadata !DIExpression()), !dbg !720
%36 = icmp sgt i64 %35, 1, !dbg !723
br i1 %36, label %37, label %38, !dbg !725, !prof !726
37: ; preds = %31
call void @llvm.memmove.p0.p0.i64(ptr align 1 %29, ptr align 1 %28, i64 %35, i1 false), !dbg !727
br label %42, !dbg !727
38: ; preds = %31
%39 = icmp eq i64 %35, 1, !dbg !728
br i1 %39, label %40, label %42, !dbg !730, !prof !731
40: ; preds = %38
call void @llvm.dbg.value(metadata ptr %29, metadata !732, metadata !DIExpression()), !dbg !742
call void @llvm.dbg.value(metadata ptr %28, metadata !741, metadata !DIExpression()), !dbg !742
%41 = load i8, ptr %28, align 1, !dbg !744, !tbaa !745
store i8 %41, ptr %29, align 1, !dbg !746, !tbaa !745
br label %42, !dbg !747
42: ; preds = %40, %38, %37, %26
%43 = shl i64 %21, 1, !dbg !748
tail call void @llvm.dbg.value(metadata i64 %43, metadata !498, metadata !DIExpression()), !dbg !601
%44 = icmp eq i64 %43, %2, !dbg !749
%45 = select i1 %44, i32 5, i32 0, !dbg !751, !prof !752
br i1 %44, label %130, label %48, !prof !753
46: ; preds = %14
%47 = landingpad { ptr, i32 }
catch ptr null, !dbg !754
br label %177, !dbg !754
48: ; preds = %42, %23
%49 = phi i64 [ %43, %42 ], [ %21, %23 ]
tail call void @llvm.dbg.value(metadata i64 %49, metadata !498, metadata !DIExpression()), !dbg !601
call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #10, !dbg !755
call void @llvm.dbg.declare(metadata ptr %6, metadata !504, metadata !DIExpression()), !dbg !756
call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #10, !dbg !757
call void @_ZN7seastar11data_source3getEv(ptr dead_on_unwind nonnull writable sret(%"class.seastar::future.0") align 8 %8, ptr noundef nonnull align 1 dereferenceable(1) %1) #10, !dbg !758
call void @llvm.experimental.noalias.scope.decl(metadata !759), !dbg !757
call void @llvm.dbg.value(metadata ptr %8, metadata !762, metadata !DIExpression(DW_OP_deref)), !dbg !767
call void @llvm.dbg.value(metadata ptr %7, metadata !769, metadata !DIExpression()), !dbg !773
call void @llvm.dbg.value(metadata ptr %8, metadata !772, metadata !DIExpression()), !dbg !773
%50 = getelementptr inbounds %"class.seastar::future.0", ptr %7, i64 0, i32 1, !dbg !775
call void @llvm.dbg.value(metadata ptr %7, metadata !776, metadata !DIExpression()), !dbg !781
call void @llvm.dbg.value(metadata ptr %8, metadata !779, metadata !DIExpression()), !dbg !781
call void @llvm.dbg.value(metadata ptr %50, metadata !780, metadata !DIExpression()), !dbg !781
call void @llvm.dbg.value(metadata ptr %7, metadata !783, metadata !DIExpression()), !dbg !790
call void @llvm.dbg.value(metadata ptr %8, metadata !786, metadata !DIExpression()), !dbg !790
call void @llvm.dbg.value(metadata ptr %50, metadata !787, metadata !DIExpression()), !dbg !790
%51 = load ptr, ptr %7, align 8, !dbg !793, !tbaa !436, !alias.scope !759
call void @llvm.dbg.value(metadata ptr %51, metadata !788, metadata !DIExpression()), !dbg !794
%52 = icmp eq ptr %51, null, !dbg !795
br i1 %52, label %54, label %53, !dbg !796, !prof !797
53: ; preds = %48
store ptr %50, ptr %51, align 8, !dbg !798, !tbaa !799, !noalias !759
br label %54, !dbg !801
54: ; preds = %53, %48
call void @llvm.dbg.value(metadata ptr %50, metadata !802, metadata !DIExpression()), !dbg !806
call void @llvm.dbg.value(metadata ptr %50, metadata !805, metadata !DIExpression()), !dbg !806
call void @llvm.dbg.value(metadata ptr %50, metadata !543, metadata !DIExpression()), !dbg !808
call void @_ZN7seastar17future_state_base3anyC1Ev(ptr noundef nonnull align 4 dereferenceable(4) %50) #10, !dbg !810
call void @llvm.dbg.value(metadata ptr %50, metadata !552, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)), !dbg !811
call void @llvm.dbg.value(metadata ptr %50, metadata !562, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)), !dbg !813
call void @llvm.dbg.value(metadata ptr %50, metadata !568, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)), !dbg !815
call void @llvm.dbg.value(metadata ptr %50, metadata !817, metadata !DIExpression()), !dbg !821
call void @llvm.dbg.value(metadata ptr %50, metadata !820, metadata !DIExpression()), !dbg !821
%55 = call noundef zeroext i1 @_ZN7seastar17future_state_base3any10has_resultEv(ptr noundef nonnull align 4 dereferenceable(4) %50) #10, !dbg !824
br i1 %55, label %56, label %58, !dbg !826, !prof !827
56: ; preds = %54
call void @llvm.dbg.value(metadata ptr %50, metadata !828, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)), !dbg !831
call void @llvm.dbg.value(metadata ptr %50, metadata !833, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)), !dbg !847
call void @llvm.dbg.value(metadata ptr %50, metadata !846, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)), !dbg !847
call void @llvm.dbg.value(metadata ptr %50, metadata !849, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)), !dbg !853
call void @llvm.dbg.value(metadata ptr %50, metadata !852, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)), !dbg !853
%57 = getelementptr inbounds %"class.seastar::future.0", ptr %7, i64 0, i32 1, i32 1, i32 0, i32 0, i32 0, i32 1, !dbg !855
store i64 0, ptr %57, align 8, !dbg !855, !alias.scope !759
br label %58, !dbg !856
58: ; preds = %56, %54
call void @llvm.dbg.value(metadata ptr %7, metadata !857, metadata !DIExpression()), !dbg !861
call void @llvm.dbg.value(metadata ptr %7, metadata !863, metadata !DIExpression()), !dbg !866
call void @llvm.dbg.value(metadata ptr %50, metadata !868, metadata !DIExpression()), !dbg !871
call void @llvm.dbg.value(metadata ptr %50, metadata !873, metadata !DIExpression()), !dbg !881
%59 = load i32, ptr %50, align 4, !dbg !883, !tbaa !745
%60 = icmp sgt i32 %59, -1, !dbg !884
br i1 %60, label %61, label %65, !dbg !885, !prof !886
61: ; preds = %58
call void @llvm.dbg.value(metadata ptr undef, metadata !311, metadata !DIExpression()), !dbg !887
%62 = call noundef i32 @_ZNSt6atomicIiE4loadEv(ptr noundef nonnull align 1 dereferenceable(1) undef) #10, !dbg !889
call void @llvm.dbg.value(metadata i32 %62, metadata !312, metadata !DIExpression()), !dbg !887
%63 = icmp eq i32 %62, 0, !dbg !890
br i1 %63, label %64, label %65, !dbg !757
64: ; preds = %61
br label %69, !dbg !757
65: ; preds = %58, %61
%66 = call token @llvm.coro.save(ptr null), !dbg !757
call void @_ZNSt7__n486116coroutine_handleIN7seastar8internal21coroutine_traits_baseINS1_16temporary_bufferIcEEE12promise_typeEE12from_addressEPv(ptr noundef %16) #10, !dbg !757
call void @_ZN7seastar8internal7awaiterILb1ENS_16temporary_bufferIcEEE13await_suspendINS0_21coroutine_traits_baseIS3_E12promise_typeEEEvNSt7__n486116coroutine_handleIT_EE(ptr noundef nonnull align 8 dereferenceable(32) %7) #10, !dbg !757
%67 = call i8 @llvm.coro.suspend(token %66, i1 false), !dbg !757
switch i8 %67, label %206 [
i8 0, label %69
i8 1, label %68
], !dbg !757
68: ; preds = %65
br label %70, !dbg !757
69: ; preds = %64, %65
invoke void @_ZN7seastar8internal7awaiterILb1ENS_16temporary_bufferIcEEE12await_resumeEv(ptr dead_on_unwind nonnull writable sret(%"class.seastar::temporary_buffer") align 8 %6, ptr noundef nonnull align 8 dereferenceable(32) %7)
to label %70 unwind label %90, !dbg !757
70: ; preds = %68, %69
%71 = phi i1 [ false, %68 ], [ true, %69 ]
%72 = phi i32 [ 2, %68 ], [ 0, %69 ]
call void @llvm.dbg.value(metadata ptr %7, metadata !891, metadata !DIExpression()), !dbg !897
call void @llvm.dbg.value(metadata ptr %7, metadata !459, metadata !DIExpression()), !dbg !899
call void @llvm.dbg.value(metadata ptr %7, metadata !462, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)), !dbg !902
%73 = getelementptr inbounds %"class.seastar::future.0", ptr %7, i64 0, i32 1, i32 1, !dbg !904
call void @llvm.dbg.value(metadata ptr %73, metadata !472, metadata !DIExpression()), !dbg !905
call void @_ZN7seastar8internal26uninitialized_wrapper_baseINS_16temporary_bufferIcEELb0EE3anyD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %73) #10, !dbg !907
call void @llvm.dbg.value(metadata ptr %7, metadata !422, metadata !DIExpression()), !dbg !908
call void @llvm.dbg.value(metadata ptr %7, metadata !428, metadata !DIExpression()), !dbg !910
%74 = load ptr, ptr %7, align 8, !dbg !912, !tbaa !436
%75 = icmp eq ptr %74, null, !dbg !912
br i1 %75, label %78, label %76, !dbg !913
76: ; preds = %70
%77 = call ptr @_ZN7seastar8internal11future_base14detach_promiseEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #10, !dbg !914
br label %78, !dbg !914
78: ; preds = %70, %76
call void @llvm.dbg.value(metadata ptr %8, metadata !459, metadata !DIExpression()), !dbg !915
call void @llvm.dbg.value(metadata ptr %8, metadata !462, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)), !dbg !917
%79 = getelementptr inbounds %"class.seastar::future.0", ptr %8, i64 0, i32 1, i32 1, !dbg !919
call void @llvm.dbg.value(metadata ptr %79, metadata !472, metadata !DIExpression()), !dbg !920
call void @_ZN7seastar8internal26uninitialized_wrapper_baseINS_16temporary_bufferIcEELb0EE3anyD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %79) #10, !dbg !922
call void @llvm.dbg.value(metadata ptr %8, metadata !422, metadata !DIExpression()), !dbg !923
call void @llvm.dbg.value(metadata ptr %8, metadata !428, metadata !DIExpression()), !dbg !925
%80 = load ptr, ptr %8, align 8, !dbg !927, !tbaa !436
%81 = icmp eq ptr %80, null, !dbg !927
br i1 %81, label %84, label %82, !dbg !928
82: ; preds = %78
%83 = call ptr @_ZN7seastar8internal11future_base14detach_promiseEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #10, !dbg !929
br label %84, !dbg !929
84: ; preds = %78, %82
call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #10, !dbg !757
br i1 %71, label %85, label %128
85: ; preds = %84
%86 = call noundef i64 @_ZN7seastar16temporary_bufferIcE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %6) #10, !dbg !930
%87 = icmp eq i64 %86, 0, !dbg !932
br i1 %87, label %105, label %88, !dbg !933
88: ; preds = %85
%89 = getelementptr inbounds %"class.seastar::input_stream", ptr %1, i64 0, i32 3, !dbg !934
store i8 1, ptr %89, align 8, !dbg !936, !tbaa !937
br label %108, !dbg !941
90: ; preds = %69
%91 = landingpad { ptr, i32 }
catch ptr null, !dbg !942
call void @llvm.dbg.value(metadata ptr %7, metadata !891, metadata !DIExpression()), !dbg !943
call void @llvm.dbg.value(metadata ptr %7, metadata !459, metadata !DIExpression()), !dbg !945
call void @llvm.dbg.value(metadata ptr %7, metadata !462, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)), !dbg !947
%92 = getelementptr inbounds %"class.seastar::future.0", ptr %7, i64 0, i32 1, i32 1, !dbg !949
call void @llvm.dbg.value(metadata ptr %92, metadata !472, metadata !DIExpression()), !dbg !950
call void @_ZN7seastar8internal26uninitialized_wrapper_baseINS_16temporary_bufferIcEELb0EE3anyD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %92) #10, !dbg !952
call void @llvm.dbg.value(metadata ptr %7, metadata !422, metadata !DIExpression()), !dbg !953
call void @llvm.dbg.value(metadata ptr %7, metadata !428, metadata !DIExpression()), !dbg !955
%93 = load ptr, ptr %7, align 8, !dbg !957, !tbaa !436
%94 = icmp eq ptr %93, null, !dbg !957
br i1 %94, label %97, label %95, !dbg !958
95: ; preds = %90
%96 = call ptr @_ZN7seastar8internal11future_base14detach_promiseEv(ptr noundef nonnull align 8 dereferenceable(8) %7) #10, !dbg !959
br label %97, !dbg !959
97: ; preds = %95, %90
call void @llvm.dbg.value(metadata ptr %8, metadata !459, metadata !DIExpression()), !dbg !960
call void @llvm.dbg.value(metadata ptr %8, metadata !462, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)), !dbg !962
%98 = getelementptr inbounds %"class.seastar::future.0", ptr %8, i64 0, i32 1, i32 1, !dbg !964
call void @llvm.dbg.value(metadata ptr %98, metadata !472, metadata !DIExpression()), !dbg !965
call void @_ZN7seastar8internal26uninitialized_wrapper_baseINS_16temporary_bufferIcEELb0EE3anyD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %98) #10, !dbg !967
call void @llvm.dbg.value(metadata ptr %8, metadata !422, metadata !DIExpression()), !dbg !968
call void @llvm.dbg.value(metadata ptr %8, metadata !428, metadata !DIExpression()), !dbg !970
%99 = load ptr, ptr %8, align 8, !dbg !972, !tbaa !436
%100 = icmp eq ptr %99, null, !dbg !972
br i1 %100, label %103, label %101, !dbg !973
101: ; preds = %97
%102 = call ptr @_ZN7seastar8internal11future_base14detach_promiseEv(ptr noundef nonnull align 8 dereferenceable(8) %8) #10, !dbg !974
br label %103, !dbg !974
103: ; preds = %97, %101
call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #10, !dbg !757
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #10, !dbg !975
call void @llvm.dbg.value(metadata ptr %5, metadata !976, metadata !DIExpression()), !dbg !982
call void @llvm.dbg.value(metadata ptr %18, metadata !984, metadata !DIExpression()), !dbg !988
%104 = call noundef zeroext i1 @_ZN7seastar7deleter13is_raw_objectEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #10, !dbg !991
br i1 %104, label %134, label %135, !dbg !994
105: ; preds = %85
%106 = getelementptr inbounds %"class.seastar::input_stream", ptr %1, i64 0, i32 2, !dbg !995
%107 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN7seastar16temporary_bufferIcEaSEOS1_(ptr noundef nonnull align 8 dereferenceable(16) %106, ptr noundef nonnull align 8 dereferenceable(16) %6) #10, !dbg !996
br label %108, !dbg !975
108: ; preds = %105, %88
%109 = phi i32 [ 5, %88 ], [ 0, %105 ]
call void @llvm.dbg.value(metadata ptr %6, metadata !976, metadata !DIExpression()), !dbg !997
%110 = getelementptr inbounds %"class.seastar::temporary_buffer", ptr %6, i64 0, i32 1, !dbg !999
call void @llvm.dbg.value(metadata ptr %110, metadata !984, metadata !DIExpression()), !dbg !1000
%111 = call noundef zeroext i1 @_ZN7seastar7deleter13is_raw_objectEv(ptr noundef nonnull align 8 dereferenceable(8) %110) #10, !dbg !1002
br i1 %111, label %112, label %113, !dbg !1003
112: ; preds = %108
call void @_ZN7seastar7deleter13to_raw_objectEv(ptr noundef nonnull align 8 dereferenceable(8) %110) #10, !dbg !1004
br label %128, !dbg !1006
113: ; preds = %108
%114 = load ptr, ptr %110, align 8, !dbg !1007, !tbaa !1009
%115 = icmp eq ptr %114, null, !dbg !1007
br i1 %115, label %128, label %116, !dbg !1010
116: ; preds = %113
%117 = getelementptr inbounds %"struct.seastar::deleter::impl", ptr %114, i64 0, i32 1, !dbg !1011
%118 = load i32, ptr %117, align 8, !dbg !1012, !tbaa !1013
%119 = add i32 %118, -1, !dbg !1012
store i32 %119, ptr %117, align 8, !dbg !1012, !tbaa !1013
%120 = icmp eq i32 %119, 0, !dbg !1016
br i1 %120, label %121, label %128, !dbg !1017
121: ; preds = %116
%122 = load ptr, ptr %110, align 8, !dbg !1018, !tbaa !1009
%123 = icmp eq ptr %122, null, !dbg !1019
br i1 %123, label %128, label %124, !dbg !1019
124: ; preds = %121
%125 = load ptr, ptr %122, align 8, !dbg !1019, !tbaa !1020
%126 = getelementptr inbounds ptr, ptr %125, i64 1, !dbg !1019
%127 = load ptr, ptr %126, align 8, !dbg !1019
call void %127(ptr noundef nonnull align 8 dereferenceable(12) %122) #10, !dbg !1019
br label %128, !dbg !1019
128: ; preds = %124, %121, %116, %113, %112, %84
%129 = phi i32 [ %72, %84 ], [ %109, %112 ], [ %109, %113 ], [ %109, %116 ], [ %109, %121 ], [ %109, %124 ]
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #10, !dbg !975
br label %130
130: ; preds = %42, %128
%131 = phi i64 [ %49, %128 ], [ %43, %42 ], !dbg !748
%132 = phi i32 [ %129, %128 ], [ %45, %42 ]
tail call void @llvm.dbg.value(metadata i64 %131, metadata !498, metadata !DIExpression()), !dbg !601
switch i32 %132, label %182 [
i32 0, label %20
i32 5, label %133
], !llvm.loop !1022
133: ; preds = %130
br label %150
134: ; preds = %103
call void @_ZN7seastar7deleter13to_raw_objectEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #10, !dbg !1024
br label %177, !dbg !1025
135: ; preds = %103
%136 = load ptr, ptr %18, align 8, !dbg !1026, !tbaa !1009
%137 = icmp eq ptr %136, null, !dbg !1026
br i1 %137, label %177, label %138, !dbg !1027
138: ; preds = %135
%139 = getelementptr inbounds %"struct.seastar::deleter::impl", ptr %136, i64 0, i32 1, !dbg !1028
%140 = load i32, ptr %139, align 8, !dbg !1029, !tbaa !1013
%141 = add i32 %140, -1, !dbg !1029
store i32 %141, ptr %139, align 8, !dbg !1029, !tbaa !1013
%142 = icmp eq i32 %141, 0, !dbg !1030
br i1 %142, label %143, label %177, !dbg !1031
143: ; preds = %138
%144 = load ptr, ptr %18, align 8, !dbg !1032, !tbaa !1009
%145 = icmp eq ptr %144, null, !dbg !1033
br i1 %145, label %177, label %146, !dbg !1033
146: ; preds = %143
%147 = load ptr, ptr %144, align 8, !dbg !1033, !tbaa !1020
%148 = getelementptr inbounds ptr, ptr %147, i64 1, !dbg !1033
%149 = load ptr, ptr %148, align 8, !dbg !1033
call void %149(ptr noundef nonnull align 8 dereferenceable(12) %144) #10, !dbg !1033
br label %177, !dbg !1033
150: ; preds = %133, %20
call void @llvm.dbg.value(metadata ptr %4, metadata !1034, metadata !DIExpression()), !dbg !1041
call void @llvm.dbg.value(metadata ptr %5, metadata !1040, metadata !DIExpression()), !dbg !1041
call void @llvm.dbg.value(metadata ptr %4, metadata !1043, metadata !DIExpression()), !dbg !1054
call void @llvm.dbg.value(metadata ptr %5, metadata !1053, metadata !DIExpression()), !dbg !1054
call void @llvm.dbg.value(metadata ptr %4, metadata !1056, metadata !DIExpression()), !dbg !1067
call void @llvm.dbg.value(metadata ptr %5, metadata !1064, metadata !DIExpression()), !dbg !1067
call void @llvm.dbg.value(metadata ptr %4, metadata !1069, metadata !DIExpression()), !dbg !1072
%151 = load ptr, ptr %4, align 8, !dbg !1074, !tbaa !799
call void @llvm.dbg.value(metadata ptr %151, metadata !1065, metadata !DIExpression()), !dbg !1075
%152 = icmp eq ptr %151, null, !dbg !1076
br i1 %152, label %158, label %153, !dbg !1077
153: ; preds = %150
call void @llvm.dbg.value(metadata ptr %151, metadata !1078, metadata !DIExpression()), !dbg !1081
%154 = load i32, ptr %151, align 8, !dbg !1083, !tbaa !745
%155 = icmp eq i32 %154, 0, !dbg !1084
br i1 %155, label %156, label %157, !dbg !1084
156: ; preds = %153
call void @_Z13__assert_failPcPKciS1_(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 235, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN7seastar12future_stateINS_16temporary_bufferIcEEE3setEv) #22, !dbg !1085
unreachable, !dbg !1085
157: ; preds = %153
call void @llvm.dbg.value(metadata ptr %151, metadata !538, metadata !DIExpression()), !dbg !1086
call void @llvm.dbg.value(metadata ptr %151, metadata !543, metadata !DIExpression()), !dbg !1088
call void @_ZN7seastar17future_state_base3anyC1Ev(ptr noundef nonnull align 4 dereferenceable(4) %151) #10, !dbg !1090
call void @llvm.dbg.value(metadata ptr %151, metadata !552, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)), !dbg !1091
call void @llvm.dbg.value(metadata ptr %151, metadata !562, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)), !dbg !1093
call void @llvm.dbg.value(metadata ptr %151, metadata !568, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)), !dbg !1095
br label %158, !dbg !1097
158: ; preds = %157, %150
call void @llvm.dbg.value(metadata ptr %5, metadata !976, metadata !DIExpression()), !dbg !1098
call void @llvm.dbg.value(metadata ptr %18, metadata !984, metadata !DIExpression()), !dbg !1100
%159 = call noundef zeroext i1 @_ZN7seastar7deleter13is_raw_objectEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #10, !dbg !1102
br i1 %159, label %160, label %161, !dbg !1103
160: ; preds = %158
call void @_ZN7seastar7deleter13to_raw_objectEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #10, !dbg !1104
br label %176, !dbg !1105
161: ; preds = %158
%162 = load ptr, ptr %18, align 8, !dbg !1106, !tbaa !1009
%163 = icmp eq ptr %162, null, !dbg !1106
br i1 %163, label %176, label %164, !dbg !1107
164: ; preds = %161
%165 = getelementptr inbounds %"struct.seastar::deleter::impl", ptr %162, i64 0, i32 1, !dbg !1108
%166 = load i32, ptr %165, align 8, !dbg !1109, !tbaa !1013
%167 = add i32 %166, -1, !dbg !1109
store i32 %167, ptr %165, align 8, !dbg !1109, !tbaa !1013
%168 = icmp eq i32 %167, 0, !dbg !1110
br i1 %168, label %169, label %176, !dbg !1111
169: ; preds = %164
%170 = load ptr, ptr %18, align 8, !dbg !1112, !tbaa !1009
%171 = icmp eq ptr %170, null, !dbg !1113
br i1 %171, label %176, label %172, !dbg !1113
172: ; preds = %169
%173 = load ptr, ptr %170, align 8, !dbg !1113, !tbaa !1020
%174 = getelementptr inbounds ptr, ptr %173, i64 1, !dbg !1113
%175 = load ptr, ptr %174, align 8, !dbg !1113
call void %175(ptr noundef nonnull align 8 dereferenceable(12) %170) #10, !dbg !1113
br label %176, !dbg !1113
176: ; preds = %160, %161, %164, %169, %172
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #10, !dbg !1114
br label %201
177: ; preds = %146, %143, %138, %135, %134, %46
%178 = phi { ptr, i32 } [ %47, %46 ], [ %91, %134 ], [ %91, %135 ], [ %91, %138 ], [ %91, %143 ], [ %91, %146 ]
%179 = extractvalue { ptr, i32 } %178, 0, !dbg !754
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #10, !dbg !1114
%180 = call ptr @__cxa_begin_catch(ptr %179) #10, !dbg !754
call void @_ZN7seastar8internal21coroutine_traits_baseINS_16temporary_bufferIcEEE12promise_type19unhandled_exceptionEv(ptr noundef nonnull align 8 dereferenceable(32) %4) #10, !dbg !509
invoke void @__cxa_end_catch()
to label %181 unwind label %208, !dbg !509
181: ; preds = %177
br label %201, !dbg !509
182: ; preds = %130
call void @llvm.dbg.value(metadata ptr %5, metadata !976, metadata !DIExpression()), !dbg !1115
call void @llvm.dbg.value(metadata ptr %18, metadata !984, metadata !DIExpression()), !dbg !1117
%183 = call noundef zeroext i1 @_ZN7seastar7deleter13is_raw_objectEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #10, !dbg !1119
br i1 %183, label %184, label %185, !dbg !1120
184: ; preds = %182
call void @_ZN7seastar7deleter13to_raw_objectEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #10, !dbg !1121
br label %200, !dbg !1122
185: ; preds = %182
%186 = load ptr, ptr %18, align 8, !dbg !1123, !tbaa !1009
%187 = icmp eq ptr %186, null, !dbg !1123
br i1 %187, label %200, label %188, !dbg !1124
188: ; preds = %185
%189 = getelementptr inbounds %"struct.seastar::deleter::impl", ptr %186, i64 0, i32 1, !dbg !1125
%190 = load i32, ptr %189, align 8, !dbg !1126, !tbaa !1013
%191 = add i32 %190, -1, !dbg !1126
store i32 %191, ptr %189, align 8, !dbg !1126, !tbaa !1013
%192 = icmp eq i32 %191, 0, !dbg !1127
br i1 %192, label %193, label %200, !dbg !1128
193: ; preds = %188
%194 = load ptr, ptr %18, align 8, !dbg !1129, !tbaa !1009
%195 = icmp eq ptr %194, null, !dbg !1130
br i1 %195, label %200, label %196, !dbg !1130
196: ; preds = %193
%197 = load ptr, ptr %194, align 8, !dbg !1130, !tbaa !1020
%198 = getelementptr inbounds ptr, ptr %197, i64 1, !dbg !1130
%199 = load ptr, ptr %198, align 8, !dbg !1130
call void %199(ptr noundef nonnull align 8 dereferenceable(12) %194) #10, !dbg !1130
br label %200, !dbg !1130
200: ; preds = %184, %185, %188, %193, %196
call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) #10, !dbg !1114
br label %201
201: ; preds = %181, %176, %200
call void @llvm.dbg.value(metadata ptr %4, metadata !1131, metadata !DIExpression()), !dbg !1135
call void @llvm.dbg.value(metadata ptr %4, metadata !1137, metadata !DIExpression()), !dbg !1141
call void @llvm.dbg.value(metadata ptr %4, metadata !462, metadata !DIExpression(DW_OP_plus_uconst, 8, DW_OP_stack_value)), !dbg !1144
%202 = getelementptr inbounds %"class.seastar::promise", ptr %4, i64 0, i32 1, i32 1, !dbg !1147
call void @llvm.dbg.value(metadata ptr %202, metadata !472, metadata !DIExpression()), !dbg !1148
call void @_ZN7seastar8internal26uninitialized_wrapper_baseINS_16temporary_bufferIcEELb0EE3anyD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %202) #10, !dbg !1150
call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) #10, !dbg !509
%203 = call ptr @llvm.coro.free(token %9, ptr %16), !dbg !509
%204 = icmp eq ptr %203, null, !dbg !509
br i1 %204, label %206, label %205, !dbg !509
205: ; preds = %201
call void @_ZdlPv(ptr noundef nonnull %203) #10, !dbg !509
br label %206, !dbg !509
206: ; preds = %205, %201, %65
%207 = call i1 @llvm.coro.end(ptr null, i1 false, token none) #21, !dbg !509
ret void, !dbg !509
208: ; preds = %177, %11
%209 = landingpad { ptr, i32 }
catch ptr null, !dbg !509
%210 = extractvalue { ptr, i32 } %209, 0, !dbg !509
call void @__clang_call_terminate(ptr %210) #22, !dbg !509
unreachable, !dbg !509
}
$1 = void
(gdb) p BB.dump()
65: ; preds = %58, %61
%66 = call token @llvm.coro.save(ptr null), !dbg !582
call void @_ZNSt7__n486116coroutine_handleIN7seastar8internal21coroutine_traits_baseINS1_16temporary_bufferIcEEE12promise_typeEE12from_addressEPv(ptr noundef %16) #10, !dbg !582
call void @_ZN7seastar8internal7awaiterILb1ENS_16temporary_bufferIcEEE13await_suspendINS0_21coroutine_traits_baseIS3_E12promise_typeEEEvNSt7__n486116coroutine_handleIT_EE(ptr noundef nonnull align 8 dereferenceable(32) %7) #10, !dbg !582
%67 = call i8 @llvm.coro.suspend(token %66, i1 false), !dbg !582
switch i8 %67, label %206 [
i8 0, label %69
i8 1, label %68
], !dbg !582
$2 = void
(gdb) p Size
$3 = 2
(gdb) p s
$4 = 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment