Created
August 13, 2024 09:43
-
-
Save avikivity/ee2e860be4dd5179b9f8ee70a2e9f487 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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