; LLVM IR from thepowersgang/mrustc :: src/mir/mir_builder.ll (ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"struct.std::pair.413" = type { i32, [4 x i8], %class.VarState }
%class.VarState = type { i32, [4 x i8], %"union.VarState::DataUnion" }
%"union.VarState::DataUnion" = type { i32, [28 x i8] }
%struct.Span = type { ptr }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon.462 = type { i8 }
%class.anon.464 = type { ptr }
%class.anon.465 = type { i8 }
%class.TraceLog = type { ptr, %"class.std::function" }
%class.anon.467 = type { ptr, ptr, ptr, ptr }
%class.anon.468 = type { i8 }
%class.anon.470 = type { %struct.Span, ptr }
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"struct.std::pair.411" = type <{ %"struct.std::_Rb_tree_iterator", i8, [7 x i8] }>
%struct.SplitArm = type { i8, i8, %"class.std::map.252", %"class.std::map.252" }
%"class.std::map.252" = type { %"class.std::_Rb_tree.253" }
%"class.std::_Rb_tree.253" = type { %"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, VarState>, std::_Select1st<std::pair<const unsigned int, VarState>>, std::less<unsigned int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, VarState>, std::_Select1st<std::pair<const unsigned int, VarState>>, std::less<unsigned int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }
%class.ScopeHandle = type <{ ptr, i32, [4 x i8] }>
%class.MirBuilder = type { ptr, ptr, ptr, ptr, ptr, ptr, i32, i8, %"class.MIR::RValue", i8, [7 x i8], %class.VarState, %"class.std::vector.26", %"class.std::vector.26", i64, %"class.std::map", %"class.std::vector.42", %"class.std::vector.47", %class.ScopeHandle, %"class.std::vector.52", %"struct.MIR::LValue" }
%"class.MIR::RValue" = type { i32, %"union.MIR::RValue::DataUnion" }
%"union.MIR::RValue::DataUnion" = type { %"struct.MIR::RValue::Data_BinOp" }
%"struct.MIR::RValue::Data_BinOp" = type { %"class.MIR::Param", i32, %"class.MIR::Param" }
%"class.MIR::Param" = type { i32, %"union.MIR::Param::DataUnion" }
%"union.MIR::Param::DataUnion" = type { %"struct.MIR::Param::Data_Borrow" }
%"struct.MIR::Param::Data_Borrow" = type { i32, %"struct.MIR::LValue" }
%"class.std::vector.26" = type { %"struct.std::_Vector_base.27" }
%"struct.std::_Vector_base.27" = type { %"struct.std::_Vector_base<VarState, std::allocator<VarState>>::_Vector_impl" }
%"struct.std::_Vector_base<VarState, std::allocator<VarState>>::_Vector_impl" = type { %"struct.std::_Vector_base<VarState, std::allocator<VarState>>::_Vector_impl_data" }
%"struct.std::_Vector_base<VarState, std::allocator<VarState>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::map" = type { %"class.std::_Rb_tree" }
%"class.std::_Rb_tree" = type { %"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, unsigned int>, std::_Select1st<std::pair<const unsigned int, unsigned int>>, std::less<unsigned int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, unsigned int>, std::_Select1st<std::pair<const unsigned int, unsigned int>>, std::less<unsigned int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"class.std::vector.42" = type { %"struct.std::_Vector_base.43" }
%"struct.std::_Vector_base.43" = type { %"struct.std::_Vector_base<MirBuilder::ScopeDef, std::allocator<MirBuilder::ScopeDef>>::_Vector_impl" }
%"struct.std::_Vector_base<MirBuilder::ScopeDef, std::allocator<MirBuilder::ScopeDef>>::_Vector_impl" = type { %"struct.std::_Vector_base<MirBuilder::ScopeDef, std::allocator<MirBuilder::ScopeDef>>::_Vector_impl_data" }
%"struct.std::_Vector_base<MirBuilder::ScopeDef, std::allocator<MirBuilder::ScopeDef>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.47" = type { %"struct.std::_Vector_base.48" }
%"struct.std::_Vector_base.48" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned int, std::allocator<unsigned int>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.52" = type { %"struct.std::_Vector_base.53" }
%"struct.std::_Vector_base.53" = type { %"struct.std::_Vector_base<std::pair<HIR::PatternBinding::Type, MIR::LValue>, std::allocator<std::pair<HIR::PatternBinding::Type, MIR::LValue>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::pair<HIR::PatternBinding::Type, MIR::LValue>, std::allocator<std::pair<HIR::PatternBinding::Type, MIR::LValue>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::pair<HIR::PatternBinding::Type, MIR::LValue>, std::allocator<std::pair<HIR::PatternBinding::Type, MIR::LValue>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::pair<HIR::PatternBinding::Type, MIR::LValue>, std::allocator<std::pair<HIR::PatternBinding::Type, MIR::LValue>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.MIR::LValue" = type { %"class.MIR::LValue::Storage", %"class.std::vector" }
%"class.MIR::LValue::Storage" = type { i64 }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<MIR::LValue::Wrapper, std::allocator<MIR::LValue::Wrapper>>::_Vector_impl" }
%"struct.std::_Vector_base<MIR::LValue::Wrapper, std::allocator<MIR::LValue::Wrapper>>::_Vector_impl" = type { %"struct.std::_Vector_base<MIR::LValue::Wrapper, std::allocator<MIR::LValue::Wrapper>>::_Vector_impl_data" }
%"struct.std::_Vector_base<MIR::LValue::Wrapper, std::allocator<MIR::LValue::Wrapper>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.MirBuilder::ScopeDef" = type { ptr, i8, %class.ScopeType }
%class.ScopeType = type { i32, %"union.ScopeType::DataUnion" }
%"union.ScopeType::DataUnion" = type { %"struct.ScopeType::Data_Loop" }
%"struct.ScopeType::Data_Loop" = type { %"class.std::map.252", %"class.std::map.252", i8, %struct.SplitEnd, i32, %"class.std::vector.47" }
%struct.SplitEnd = type { %"class.std::map.252", %"class.std::map.252" }
%"struct.ScopeType::Data_Split" = type { i8, %struct.SplitEnd, %struct.SplitEnd, %"class.std::vector.257" }
%"class.std::vector.257" = type { %"struct.std::_Vector_base.258" }
%"struct.std::_Vector_base.258" = type { %"struct.std::_Vector_base<SplitArm, std::allocator<SplitArm>>::_Vector_impl" }
%"struct.std::_Vector_base<SplitArm, std::allocator<SplitArm>>::_Vector_impl" = type { %"struct.std::_Vector_base<SplitArm, std::allocator<SplitArm>>::_Vector_impl_data" }
%"struct.std::_Vector_base<SplitArm, std::allocator<SplitArm>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"struct.std::pair.471" = type { i32, [4 x i8], %class.VarState }

@g_debug_indent_level = external global i32, align 4
@.str.7 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@.str.14 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [5 x i8], align 1
@__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb = external hidden unnamed_addr constant [14 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [15 x i8], align 1
@__PRETTY_FUNCTION__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb = external hidden unnamed_addr constant [78 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [21 x i8], align 1

declare i32 @__gxx_personality_v0(...)

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #1 align 2

declare noundef zeroext i1 @_Z13debug_enabledv() #2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #3

declare noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef, ptr noundef) #2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3decRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #3

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #3

declare void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, ptr noundef) unnamed_addr #2

; Function Attrs: nounwind
declare void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(256) ptr @_ZNSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #4 align 2

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(224) ptr @_ZN9ScopeType8as_SplitEv(ptr noundef nonnull align 8 dereferenceable(240)) #1 align 2

declare void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) #2

; Function Attrs: nounwind
declare void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #5

declare ptr @__cxa_allocate_exception(i64)

declare void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #2

declare void @__cxa_free_exception(ptr)

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5

declare void @__cxa_throw(ptr, ptr, ptr)

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK9ScopeType8is_SplitEv(ptr noundef nonnull align 8 dereferenceable(240)) #1 align 2

declare void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8VarState(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(40)) #4

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIRKj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.413") align 8, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(40)) #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(104) ptr @_ZNSt6vectorI8SplitArmSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK8VarState5cloneEv(ptr dead_on_unwind noalias writable sret(%class.VarState) align 8, ptr noundef nonnull align 8 dereferenceable(40)) #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorI8SplitArmSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(104)) #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8SplitArmD2Ev(ptr noundef nonnull align 8 dereferenceable(104)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt6vectorI8SplitArmSaIS0_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb(ptr noundef nonnull align 8 dereferenceable(440) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(12) %2, i1 noundef zeroext %3, i1 noundef zeroext %4) #4 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i8, align 1
  %10 = alloca i8, align 1
  %11 = alloca %struct.Span, align 8
  %12 = alloca %"class.std::function", align 8
  %13 = alloca %class.anon.462, align 1
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca %struct.Span, align 8
  %18 = alloca %"class.std::function", align 8
  %19 = alloca %class.anon.464, align 8
  %20 = alloca ptr, align 8
  %21 = alloca %struct.Span, align 8
  %22 = alloca %"class.std::function", align 8
  %23 = alloca %class.anon.465, align 1
  %24 = alloca %class.TraceLog, align 8
  %25 = alloca %"class.std::function", align 8
  %26 = alloca %class.anon.467, align 8
  %27 = alloca %struct.Span, align 8
  %28 = alloca %"class.std::function", align 8
  %29 = alloca %class.anon.468, align 1
  %30 = alloca ptr, align 8
  %31 = alloca %class.anon.470, align 8
  %32 = alloca ptr, align 8
  %33 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %34 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %35 = alloca ptr, align 8
  %36 = alloca %"struct.std::pair.413", align 8
  %37 = alloca %class.VarState, align 8
  %38 = alloca %"struct.std::pair.411", align 8
  %39 = alloca ptr, align 8
  %40 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %41 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %42 = alloca ptr, align 8
  %43 = alloca %"struct.std::pair.413", align 8
  %44 = alloca %class.VarState, align 8
  %45 = alloca %"struct.std::pair.411", align 8
  %46 = alloca %struct.SplitArm, align 8
  %47 = alloca ptr, align 8
  %48 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %49 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %50 = alloca ptr, align 8
  %51 = alloca %"struct.std::pair.413", align 8
  %52 = alloca %class.VarState, align 8
  %53 = alloca %"struct.std::pair.411", align 8
  %54 = alloca ptr, align 8
  %55 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %56 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %57 = alloca ptr, align 8
  %58 = alloca %"struct.std::pair.413", align 8
  %59 = alloca %class.VarState, align 8
  %60 = alloca %"struct.std::pair.411", align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  %61 = zext i1 %3 to i8
  store i8 %61, ptr %9, align 1, !tbaa !9
  %62 = zext i1 %4 to i8
  store i8 %62, ptr %10, align 1, !tbaa !9
  %63 = load ptr, ptr %6, align 8
  br label %64

64:                                               ; preds = %5
  %65 = load ptr, ptr %8, align 8, !tbaa !5
  %66 = getelementptr inbounds %class.ScopeHandle, ptr %65, i32 0, i32 1
  %67 = load i32, ptr %66, align 8, !tbaa !11
  %68 = zext i32 %67 to i64
  %69 = getelementptr inbounds %class.MirBuilder, ptr %63, i32 0, i32 16
  %70 = call noundef i64 @_ZNKSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %69) #8
  %71 = icmp ult i64 %68, %70
  br i1 %71, label %85, label %72

72:                                               ; preds = %64
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #8
  %73 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %73)
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef %12)
          to label %74 unwind label %77

74:                                               ; preds = %72
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  %75 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %75, ptr noundef @.str.9)
          to label %76 unwind label %81

76:                                               ; preds = %74
  call void @__cxa_throw(ptr %75, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
  unreachable

77:                                               ; preds = %72
  %78 = landingpad { ptr, i32 }
          cleanup
  %79 = extractvalue { ptr, i32 } %78, 0
  store ptr %79, ptr %14, align 8
  %80 = extractvalue { ptr, i32 } %78, 1
  store i32 %80, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #8
  br label %657

81:                                               ; preds = %74
  %82 = landingpad { ptr, i32 }
          cleanup
  %83 = extractvalue { ptr, i32 } %82, 0
  store ptr %83, ptr %14, align 8
  %84 = extractvalue { ptr, i32 } %82, 1
  store i32 %84, ptr %15, align 4
  call void @__cxa_free_exception(ptr %75) #8
  br label %657

85:                                               ; preds = %64
  br label %86

86:                                               ; preds = %85
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #8
  %87 = getelementptr inbounds %class.MirBuilder, ptr %63, i32 0, i32 16
  %88 = load ptr, ptr %8, align 8, !tbaa !5
  %89 = getelementptr inbounds %class.ScopeHandle, ptr %88, i32 0, i32 1
  %90 = load i32, ptr %89, align 8, !tbaa !11
  %91 = zext i32 %90 to i64
  %92 = call noundef nonnull align 8 dereferenceable(256) ptr @_ZNSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef %91)
  store ptr %92, ptr %16, align 8, !tbaa !5
  br label %93

93:                                               ; preds = %86
  %94 = load ptr, ptr %16, align 8, !tbaa !5
  %95 = getelementptr inbounds %"struct.MirBuilder::ScopeDef", ptr %94, i32 0, i32 2
  %96 = call noundef zeroext i1 @_ZNK9ScopeType8is_SplitEv(ptr noundef nonnull align 8 dereferenceable(240) %95)
  br i1 %96, label %112, label %97

97:                                               ; preds = %93
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #8
  %98 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %98)
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  %99 = getelementptr inbounds %class.anon.464, ptr %19, i32 0, i32 0
  %100 = load ptr, ptr %16, align 8, !tbaa !5
  store ptr %100, ptr %99, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(8) %19) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef %18)
          to label %101 unwind label %104

101:                                              ; preds = %97
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  %102 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %102, ptr noundef @.str.9)
          to label %103 unwind label %108

103:                                              ; preds = %101
  call void @__cxa_throw(ptr %102, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
  unreachable

104:                                              ; preds = %97
  %105 = landingpad { ptr, i32 }
          cleanup
  %106 = extractvalue { ptr, i32 } %105, 0
  store ptr %106, ptr %14, align 8
  %107 = extractvalue { ptr, i32 } %105, 1
  store i32 %107, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  br label %656

108:                                              ; preds = %101
  %109 = landingpad { ptr, i32 }
          cleanup
  %110 = extractvalue { ptr, i32 } %109, 0
  store ptr %110, ptr %14, align 8
  %111 = extractvalue { ptr, i32 } %109, 1
  store i32 %111, ptr %15, align 4
  call void @__cxa_free_exception(ptr %102) #8
  br label %656

112:                                              ; preds = %93
  br label %113

113:                                              ; preds = %112
  br label %114

114:                                              ; preds = %113
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #8
  %115 = load ptr, ptr %16, align 8, !tbaa !5
  %116 = getelementptr inbounds %"struct.MirBuilder::ScopeDef", ptr %115, i32 0, i32 2
  %117 = call noundef nonnull align 8 dereferenceable(224) ptr @_ZN9ScopeType8as_SplitEv(ptr noundef nonnull align 8 dereferenceable(240) %116)
  store ptr %117, ptr %20, align 8, !tbaa !5
  br label %118

118:                                              ; preds = %114
  %119 = load ptr, ptr %20, align 8, !tbaa !5
  %120 = getelementptr inbounds %"struct.ScopeType::Data_Split", ptr %119, i32 0, i32 3
  %121 = call noundef zeroext i1 @_ZNKSt6vectorI8SplitArmSaIS0_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %120) #8
  br i1 %121, label %122, label %135

122:                                              ; preds = %118
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  %123 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %123)
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 1 dereferenceable(1) %23) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef %22)
          to label %124 unwind label %127

124:                                              ; preds = %122
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  %125 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %125, ptr noundef @.str.9)
          to label %126 unwind label %131

126:                                              ; preds = %124
  call void @__cxa_throw(ptr %125, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
  unreachable

127:                                              ; preds = %122
  %128 = landingpad { ptr, i32 }
          cleanup
  %129 = extractvalue { ptr, i32 } %128, 0
  store ptr %129, ptr %14, align 8
  %130 = extractvalue { ptr, i32 } %128, 1
  store i32 %130, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  br label %655

131:                                              ; preds = %124
  %132 = landingpad { ptr, i32 }
          cleanup
  %133 = extractvalue { ptr, i32 } %132, 0
  store ptr %133, ptr %14, align 8
  %134 = extractvalue { ptr, i32 } %132, 1
  store i32 %134, ptr %15, align 4
  call void @__cxa_free_exception(ptr %125) #8
  br label %655

135:                                              ; preds = %118
  br label %136

136:                                              ; preds = %135
  br label %137

137:                                              ; preds = %136
  call void @llvm.lifetime.start.p0(i64 40, ptr %24) #8
  %138 = call noundef zeroext i1 @_Z13debug_enabledv()
  %139 = zext i1 %138 to i64
  %140 = select i1 %138, ptr @__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb, ptr null
  call void @llvm.lifetime.start.p0(i64 32, ptr %26) #8
  %141 = getelementptr inbounds %class.anon.467, ptr %26, i32 0, i32 0
  %142 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %142, ptr %141, align 8, !tbaa !5
  %143 = getelementptr inbounds %class.anon.467, ptr %26, i32 0, i32 1
  %144 = load ptr, ptr %20, align 8, !tbaa !5
  store ptr %144, ptr %143, align 8, !tbaa !5
  %145 = getelementptr inbounds %class.anon.467, ptr %26, i32 0, i32 2
  store ptr %9, ptr %145, align 8, !tbaa !5
  %146 = getelementptr inbounds %class.anon.467, ptr %26, i32 0, i32 3
  store ptr %10, ptr %146, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull align 8 dereferenceable(32) %26)
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40) %24, ptr noundef %140, ptr noundef %25)
          to label %147 unwind label %161

147:                                              ; preds = %137
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #8
  %148 = load i8, ptr %9, align 1, !tbaa !9, !range !14, !noundef !15
  %149 = trunc i8 %148 to i1
  br i1 %149, label %150, label %185

150:                                              ; preds = %147
  br label %151

151:                                              ; preds = %150
  %152 = getelementptr inbounds %class.MirBuilder, ptr %63, i32 0, i32 7
  %153 = load i8, ptr %152, align 4, !tbaa !16, !range !14, !noundef !15
  %154 = trunc i8 %153 to i1
  br i1 %154, label %182, label %155

155:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  %156 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %156)
          to label %157 unwind label %165

157:                                              ; preds = %155
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef nonnull align 1 dereferenceable(1) %29) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef %28)
          to label %158 unwind label %169

158:                                              ; preds = %157
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  %159 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %159, ptr noundef @.str.9)
          to label %160 unwind label %174

160:                                              ; preds = %158
  invoke void @__cxa_throw(ptr %159, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %662 unwind label %178

161:                                              ; preds = %137
  %162 = landingpad { ptr, i32 }
          cleanup
  %163 = extractvalue { ptr, i32 } %162, 0
  store ptr %163, ptr %14, align 8
  %164 = extractvalue { ptr, i32 } %162, 1
  store i32 %164, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %26) #8
  br label %654

165:                                              ; preds = %155
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %14, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %15, align 4
  br label %173

169:                                              ; preds = %157
  %170 = landingpad { ptr, i32 }
          cleanup
  %171 = extractvalue { ptr, i32 } %170, 0
  store ptr %171, ptr %14, align 8
  %172 = extractvalue { ptr, i32 } %170, 1
  store i32 %172, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #8
  br label %173

173:                                              ; preds = %169, %165
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  br label %653

174:                                              ; preds = %158
  %175 = landingpad { ptr, i32 }
          cleanup
  %176 = extractvalue { ptr, i32 } %175, 0
  store ptr %176, ptr %14, align 8
  %177 = extractvalue { ptr, i32 } %175, 1
  store i32 %177, ptr %15, align 4
  call void @__cxa_free_exception(ptr %159) #8
  br label %653

178:                                              ; preds = %160
  %179 = landingpad { ptr, i32 }
          cleanup
  %180 = extractvalue { ptr, i32 } %179, 0
  store ptr %180, ptr %14, align 8
  %181 = extractvalue { ptr, i32 } %179, 1
  store i32 %181, ptr %15, align 4
  br label %653

182:                                              ; preds = %151
  br label %183

183:                                              ; preds = %182
  br label %184

184:                                              ; preds = %183
  br label %185

185:                                              ; preds = %184, %147
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #8
  %186 = load ptr, ptr %20, align 8, !tbaa !5
  %187 = getelementptr inbounds %"struct.ScopeType::Data_Split", ptr %186, i32 0, i32 3
  %188 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZNSt6vectorI8SplitArmSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %187) #8
  store ptr %188, ptr %30, align 8, !tbaa !5
  %189 = load i8, ptr %9, align 1, !tbaa !9, !range !14, !noundef !15
  %190 = trunc i8 %189 to i1
  %191 = xor i1 %190, true
  %192 = load ptr, ptr %30, align 8, !tbaa !5
  %193 = getelementptr inbounds %struct.SplitArm, ptr %192, i32 0, i32 1
  %194 = zext i1 %191 to i8
  store i8 %194, ptr %193, align 1, !tbaa !53
  %195 = load ptr, ptr %20, align 8, !tbaa !5
  %196 = getelementptr inbounds %"struct.ScopeType::Data_Split", ptr %195, i32 0, i32 0
  %197 = load i8, ptr %196, align 8, !tbaa !58, !range !14, !noundef !15
  %198 = trunc i8 %197 to i1
  br i1 %198, label %199, label %266

199:                                              ; preds = %185
  %200 = load i8, ptr %9, align 1, !tbaa !9, !range !14, !noundef !15
  %201 = trunc i8 %200 to i1
  br i1 %201, label %202, label %248

202:                                              ; preds = %199
  br label %203

203:                                              ; preds = %202
  %204 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %205 unwind label %216

205:                                              ; preds = %203
  br i1 %204, label %206, label %220

206:                                              ; preds = %205
  %207 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !65
  %208 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %207, ptr noundef @__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb)
          to label %209 unwind label %216

209:                                              ; preds = %206
  %210 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %208, ptr noundef @.str.55)
          to label %211 unwind label %216

211:                                              ; preds = %209
  %212 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %210, ptr noundef @_ZSt3decRSt8ios_base)
          to label %213 unwind label %216

213:                                              ; preds = %211
  %214 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %212, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %215 unwind label %216

215:                                              ; preds = %213
  br label %220

216:                                              ; preds = %453, %451, %449, %446, %443, %280, %278, %276, %273, %270, %259, %257, %255, %252, %249, %213, %211, %209, %206, %203
  %217 = landingpad { ptr, i32 }
          cleanup
  %218 = extractvalue { ptr, i32 } %217, 0
  store ptr %218, ptr %14, align 8
  %219 = extractvalue { ptr, i32 } %217, 1
  store i32 %219, ptr %15, align 4
  br label %652

220:                                              ; preds = %215, %205
  br label %221

221:                                              ; preds = %220
  br label %222

222:                                              ; preds = %221
  call void @llvm.lifetime.start.p0(i64 16, ptr %31) #8
  %223 = getelementptr inbounds %class.anon.470, ptr %31, i32 0, i32 0
  %224 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %223, ptr noundef nonnull align 8 dereferenceable(8) %224)
          to label %225 unwind label %239

225:                                              ; preds = %222
  %226 = getelementptr inbounds %class.anon.470, ptr %31, i32 0, i32 1
  store ptr %63, ptr %226, align 8, !tbaa !66
  %227 = load ptr, ptr %30, align 8, !tbaa !5
  %228 = getelementptr inbounds %struct.SplitArm, ptr %227, i32 0, i32 2
  %229 = load ptr, ptr %20, align 8, !tbaa !5
  %230 = getelementptr inbounds %"struct.ScopeType::Data_Split", ptr %229, i32 0, i32 2
  %231 = getelementptr inbounds %struct.SplitEnd, ptr %230, i32 0, i32 0
  invoke void @"_ZZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbENK3$_5clISt3mapIj8VarStateSt4lessIjESaISt4pairIKjS9_EEESG_NS_8SlotTypeEEEDaRKT_RT0_T1_"(ptr noundef nonnull align 8 dereferenceable(16) %31, ptr noundef nonnull align 8 dereferenceable(48) %228, ptr noundef nonnull align 8 dereferenceable(48) %231, i32 noundef 0)
          to label %232 unwind label %243

232:                                              ; preds = %225
  %233 = load ptr, ptr %30, align 8, !tbaa !5
  %234 = getelementptr inbounds %struct.SplitArm, ptr %233, i32 0, i32 3
  %235 = load ptr, ptr %20, align 8, !tbaa !5
  %236 = getelementptr inbounds %"struct.ScopeType::Data_Split", ptr %235, i32 0, i32 2
  %237 = getelementptr inbounds %struct.SplitEnd, ptr %236, i32 0, i32 1
  invoke void @"_ZZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbENK3$_5clISt3mapIj8VarStateSt4lessIjESaISt4pairIKjS9_EEESG_NS_8SlotTypeEEEDaRKT_RT0_T1_"(ptr noundef nonnull align 8 dereferenceable(16) %31, ptr noundef nonnull align 8 dereferenceable(48) %234, ptr noundef nonnull align 8 dereferenceable(48) %237, i32 noundef 1)
          to label %238 unwind label %243

238:                                              ; preds = %232
  call void @"_ZZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbEN3$_5D2Ev"(ptr noundef nonnull align 8 dereferenceable(16) %31) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #8
  br label %265

239:                                              ; preds = %222
  %240 = landingpad { ptr, i32 }
          cleanup
  %241 = extractvalue { ptr, i32 } %240, 0
  store ptr %241, ptr %14, align 8
  %242 = extractvalue { ptr, i32 } %240, 1
  store i32 %242, ptr %15, align 4
  br label %247

243:                                              ; preds = %232, %225
  %244 = landingpad { ptr, i32 }
          cleanup
  %245 = extractvalue { ptr, i32 } %244, 0
  store ptr %245, ptr %14, align 8
  %246 = extractvalue { ptr, i32 } %244, 1
  store i32 %246, ptr %15, align 4
  call void @"_ZZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbEN3$_5D2Ev"(ptr noundef nonnull align 8 dereferenceable(16) %31) #8
  br label %247

247:                                              ; preds = %243, %239
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #8
  br label %652

248:                                              ; preds = %199
  br label %249

249:                                              ; preds = %248
  %250 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %251 unwind label %216

251:                                              ; preds = %249
  br i1 %250, label %252, label %262

252:                                              ; preds = %251
  %253 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !65
  %254 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %253, ptr noundef @__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb)
          to label %255 unwind label %216

255:                                              ; preds = %252
  %256 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %254, ptr noundef @.str.56)
          to label %257 unwind label %216

257:                                              ; preds = %255
  %258 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %256, ptr noundef @_ZSt3decRSt8ios_base)
          to label %259 unwind label %216

259:                                              ; preds = %257
  %260 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %258, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %261 unwind label %216

261:                                              ; preds = %259
  br label %262

262:                                              ; preds = %261, %251
  br label %263

263:                                              ; preds = %262
  br label %264

264:                                              ; preds = %263
  br label %265

265:                                              ; preds = %264, %238
  br label %460

266:                                              ; preds = %185
  %267 = load i8, ptr %9, align 1, !tbaa !9, !range !14, !noundef !15
  %268 = trunc i8 %267 to i1
  br i1 %268, label %269, label %442

269:                                              ; preds = %266
  br label %270

270:                                              ; preds = %269
  %271 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %272 unwind label %216

272:                                              ; preds = %270
  br i1 %271, label %273, label %283

273:                                              ; preds = %272
  %274 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !65
  %275 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %274, ptr noundef @__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb)
          to label %276 unwind label %216

276:                                              ; preds = %273
  %277 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %275, ptr noundef @.str.57)
          to label %278 unwind label %216

278:                                              ; preds = %276
  %279 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %277, ptr noundef @_ZSt3decRSt8ios_base)
          to label %280 unwind label %216

280:                                              ; preds = %278
  %281 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %279, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %282 unwind label %216

282:                                              ; preds = %280
  br label %283

283:                                              ; preds = %282, %272
  br label %284

284:                                              ; preds = %283
  br label %285

285:                                              ; preds = %284
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #8
  %286 = load ptr, ptr %30, align 8, !tbaa !5
  %287 = getelementptr inbounds %struct.SplitArm, ptr %286, i32 0, i32 2
  store ptr %287, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #8
  %288 = load ptr, ptr %32, align 8, !tbaa !5
  %289 = call ptr @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %288) #8
  %290 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %33, i32 0, i32 0
  store ptr %289, ptr %290, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  %291 = load ptr, ptr %32, align 8, !tbaa !5
  %292 = call ptr @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %291) #8
  %293 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %34, i32 0, i32 0
  store ptr %292, ptr %293, align 8
  br label %294

294:                                              ; preds = %345, %285
  %295 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEES6_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  br i1 %295, label %297, label %296

296:                                              ; preds = %294
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  br label %362

297:                                              ; preds = %294
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  %298 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  store ptr %298, ptr %35, align 8, !tbaa !5
  br label %299

299:                                              ; preds = %297
  %300 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %301 unwind label %323

301:                                              ; preds = %299
  br i1 %300, label %302, label %327

302:                                              ; preds = %301
  %303 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !65
  %304 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %303, ptr noundef @__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb)
          to label %305 unwind label %323

305:                                              ; preds = %302
  %306 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %304, ptr noundef @.str.58)
          to label %307 unwind label %323

307:                                              ; preds = %305
  %308 = load ptr, ptr %35, align 8, !tbaa !5
  %309 = getelementptr inbounds %"struct.std::pair.471", ptr %308, i32 0, i32 0
  %310 = load i32, ptr %309, align 8, !tbaa !69
  %311 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %306, i32 noundef %310)
          to label %312 unwind label %323

312:                                              ; preds = %307
  %313 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %311, ptr noundef @.str.14)
          to label %314 unwind label %323

314:                                              ; preds = %312
  %315 = load ptr, ptr %35, align 8, !tbaa !5
  %316 = getelementptr inbounds %"struct.std::pair.471", ptr %315, i32 0, i32 2
  %317 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8VarState(ptr noundef nonnull align 8 dereferenceable(8) %313, ptr noundef nonnull align 8 dereferenceable(40) %316)
          to label %318 unwind label %323

318:                                              ; preds = %314
  %319 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %317, ptr noundef @_ZSt3decRSt8ios_base)
          to label %320 unwind label %323

320:                                              ; preds = %318
  %321 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %319, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %322 unwind label %323

322:                                              ; preds = %320
  br label %327

323:                                              ; preds = %320, %318, %314, %312, %307, %305, %302, %299
  %324 = landingpad { ptr, i32 }
          cleanup
  %325 = extractvalue { ptr, i32 } %324, 0
  store ptr %325, ptr %14, align 8
  %326 = extractvalue { ptr, i32 } %324, 1
  store i32 %326, ptr %15, align 4
  br label %361

327:                                              ; preds = %322, %301
  br label %328

328:                                              ; preds = %327
  br label %329

329:                                              ; preds = %328
  %330 = load ptr, ptr %20, align 8, !tbaa !5
  %331 = getelementptr inbounds %"struct.ScopeType::Data_Split", ptr %330, i32 0, i32 2
  %332 = getelementptr inbounds %struct.SplitEnd, ptr %331, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 48, ptr %36) #8
  %333 = load ptr, ptr %35, align 8, !tbaa !5
  %334 = getelementptr inbounds %"struct.std::pair.471", ptr %333, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 40, ptr %37) #8
  %335 = load ptr, ptr %35, align 8, !tbaa !5
  %336 = getelementptr inbounds %"struct.std::pair.471", ptr %335, i32 0, i32 2
  invoke void @_ZNK8VarState5cloneEv(ptr dead_on_unwind writable sret(%class.VarState) align 8 %37, ptr noundef nonnull align 8 dereferenceable(40) %336)
          to label %337 unwind label %347

337:                                              ; preds = %329
  invoke void @_ZSt9make_pairIRKj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind writable sret(%"struct.std::pair.413") align 8 %36, ptr noundef nonnull align 4 dereferenceable(4) %334, ptr noundef nonnull align 8 dereferenceable(40) %37)
          to label %338 unwind label %351

338:                                              ; preds = %337
  %339 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %332, ptr noundef nonnull align 8 dereferenceable(48) %36)
          to label %340 unwind label %355

340:                                              ; preds = %338
  %341 = getelementptr inbounds { ptr, i8 }, ptr %38, i32 0, i32 0
  %342 = extractvalue { ptr, i8 } %339, 0
  store ptr %342, ptr %341, align 8
  %343 = getelementptr inbounds { ptr, i8 }, ptr %38, i32 0, i32 1
  %344 = extractvalue { ptr, i8 } %339, 1
  store i8 %344, ptr %343, align 8
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %36) #8
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %37) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  br label %345

345:                                              ; preds = %340
  %346 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKj8VarStateEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  br label %294

347:                                              ; preds = %329
  %348 = landingpad { ptr, i32 }
          cleanup
  %349 = extractvalue { ptr, i32 } %348, 0
  store ptr %349, ptr %14, align 8
  %350 = extractvalue { ptr, i32 } %348, 1
  store i32 %350, ptr %15, align 4
  br label %360

351:                                              ; preds = %337
  %352 = landingpad { ptr, i32 }
          cleanup
  %353 = extractvalue { ptr, i32 } %352, 0
  store ptr %353, ptr %14, align 8
  %354 = extractvalue { ptr, i32 } %352, 1
  store i32 %354, ptr %15, align 4
  br label %359

355:                                              ; preds = %338
  %356 = landingpad { ptr, i32 }
          cleanup
  %357 = extractvalue { ptr, i32 } %356, 0
  store ptr %357, ptr %14, align 8
  %358 = extractvalue { ptr, i32 } %356, 1
  store i32 %358, ptr %15, align 4
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %36) #8
  br label %359

359:                                              ; preds = %355, %351
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %37) #8
  br label %360

360:                                              ; preds = %359, %347
  call void @llvm.lifetime.end.p0(i64 40, ptr %37) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %36) #8
  br label %361

361:                                              ; preds = %360, %323
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #8
  br label %652

362:                                              ; preds = %296
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #8
  %363 = load ptr, ptr %30, align 8, !tbaa !5
  %364 = getelementptr inbounds %struct.SplitArm, ptr %363, i32 0, i32 3
  store ptr %364, ptr %39, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  %365 = load ptr, ptr %39, align 8, !tbaa !5
  %366 = call ptr @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %365) #8
  %367 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %40, i32 0, i32 0
  store ptr %366, ptr %367, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #8
  %368 = load ptr, ptr %39, align 8, !tbaa !5
  %369 = call ptr @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %368) #8
  %370 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %41, i32 0, i32 0
  store ptr %369, ptr %370, align 8
  br label %371

371:                                              ; preds = %422, %362
  %372 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEES6_(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %41) #8
  br i1 %372, label %374, label %373

373:                                              ; preds = %371
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  br label %439

374:                                              ; preds = %371
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  %375 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %40) #8
  store ptr %375, ptr %42, align 8, !tbaa !5
  br label %376

376:                                              ; preds = %374
  %377 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %378 unwind label %400

378:                                              ; preds = %376
  br i1 %377, label %379, label %404

379:                                              ; preds = %378
  %380 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !65
  %381 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %380, ptr noundef @__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb)
          to label %382 unwind label %400

382:                                              ; preds = %379
  %383 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %381, ptr noundef @.str.59)
          to label %384 unwind label %400

384:                                              ; preds = %382
  %385 = load ptr, ptr %42, align 8, !tbaa !5
  %386 = getelementptr inbounds %"struct.std::pair.471", ptr %385, i32 0, i32 0
  %387 = load i32, ptr %386, align 8, !tbaa !69
  %388 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %383, i32 noundef %387)
          to label %389 unwind label %400

389:                                              ; preds = %384
  %390 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %388, ptr noundef @.str.38)
          to label %391 unwind label %400

391:                                              ; preds = %389
  %392 = load ptr, ptr %42, align 8, !tbaa !5
  %393 = getelementptr inbounds %"struct.std::pair.471", ptr %392, i32 0, i32 2
  %394 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8VarState(ptr noundef nonnull align 8 dereferenceable(8) %390, ptr noundef nonnull align 8 dereferenceable(40) %393)
          to label %395 unwind label %400

395:                                              ; preds = %391
  %396 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %394, ptr noundef @_ZSt3decRSt8ios_base)
          to label %397 unwind label %400

397:                                              ; preds = %395
  %398 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %396, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %399 unwind label %400

399:                                              ; preds = %397
  br label %404

400:                                              ; preds = %397, %395, %391, %389, %384, %382, %379, %376
  %401 = landingpad { ptr, i32 }
          cleanup
  %402 = extractvalue { ptr, i32 } %401, 0
  store ptr %402, ptr %14, align 8
  %403 = extractvalue { ptr, i32 } %401, 1
  store i32 %403, ptr %15, align 4
  br label %438

404:                                              ; preds = %399, %378
  br label %405

405:                                              ; preds = %404
  br label %406

406:                                              ; preds = %405
  %407 = load ptr, ptr %20, align 8, !tbaa !5
  %408 = getelementptr inbounds %"struct.ScopeType::Data_Split", ptr %407, i32 0, i32 2
  %409 = getelementptr inbounds %struct.SplitEnd, ptr %408, i32 0, i32 1
  call void @llvm.lifetime.start.p0(i64 48, ptr %43) #8
  %410 = load ptr, ptr %42, align 8, !tbaa !5
  %411 = getelementptr inbounds %"struct.std::pair.471", ptr %410, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 40, ptr %44) #8
  %412 = load ptr, ptr %42, align 8, !tbaa !5
  %413 = getelementptr inbounds %"struct.std::pair.471", ptr %412, i32 0, i32 2
  invoke void @_ZNK8VarState5cloneEv(ptr dead_on_unwind writable sret(%class.VarState) align 8 %44, ptr noundef nonnull align 8 dereferenceable(40) %413)
          to label %414 unwind label %424

414:                                              ; preds = %406
  invoke void @_ZSt9make_pairIRKj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind writable sret(%"struct.std::pair.413") align 8 %43, ptr noundef nonnull align 4 dereferenceable(4) %411, ptr noundef nonnull align 8 dereferenceable(40) %44)
          to label %415 unwind label %428

415:                                              ; preds = %414
  %416 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %409, ptr noundef nonnull align 8 dereferenceable(48) %43)
          to label %417 unwind label %432

417:                                              ; preds = %415
  %418 = getelementptr inbounds { ptr, i8 }, ptr %45, i32 0, i32 0
  %419 = extractvalue { ptr, i8 } %416, 0
  store ptr %419, ptr %418, align 8
  %420 = getelementptr inbounds { ptr, i8 }, ptr %45, i32 0, i32 1
  %421 = extractvalue { ptr, i8 } %416, 1
  store i8 %421, ptr %420, align 8
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %43) #8
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %44) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %43) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  br label %422

422:                                              ; preds = %417
  %423 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKj8VarStateEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %40) #8
  br label %371

424:                                              ; preds = %406
  %425 = landingpad { ptr, i32 }
          cleanup
  %426 = extractvalue { ptr, i32 } %425, 0
  store ptr %426, ptr %14, align 8
  %427 = extractvalue { ptr, i32 } %425, 1
  store i32 %427, ptr %15, align 4
  br label %437

428:                                              ; preds = %414
  %429 = landingpad { ptr, i32 }
          cleanup
  %430 = extractvalue { ptr, i32 } %429, 0
  store ptr %430, ptr %14, align 8
  %431 = extractvalue { ptr, i32 } %429, 1
  store i32 %431, ptr %15, align 4
  br label %436

432:                                              ; preds = %415
  %433 = landingpad { ptr, i32 }
          cleanup
  %434 = extractvalue { ptr, i32 } %433, 0
  store ptr %434, ptr %14, align 8
  %435 = extractvalue { ptr, i32 } %433, 1
  store i32 %435, ptr %15, align 4
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %43) #8
  br label %436

436:                                              ; preds = %432, %428
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %44) #8
  br label %437

437:                                              ; preds = %436, %424
  call void @llvm.lifetime.end.p0(i64 40, ptr %44) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %43) #8
  br label %438

438:                                              ; preds = %437, %400
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  br label %652

439:                                              ; preds = %373
  %440 = load ptr, ptr %20, align 8, !tbaa !5
  %441 = getelementptr inbounds %"struct.ScopeType::Data_Split", ptr %440, i32 0, i32 0
  store i8 1, ptr %441, align 8, !tbaa !58
  br label %459

442:                                              ; preds = %266
  br label %443

443:                                              ; preds = %442
  %444 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %445 unwind label %216

445:                                              ; preds = %443
  br i1 %444, label %446, label %456

446:                                              ; preds = %445
  %447 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !65
  %448 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %447, ptr noundef @__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb)
          to label %449 unwind label %216

449:                                              ; preds = %446
  %450 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %448, ptr noundef @.str.60)
          to label %451 unwind label %216

451:                                              ; preds = %449
  %452 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %450, ptr noundef @_ZSt3decRSt8ios_base)
          to label %453 unwind label %216

453:                                              ; preds = %451
  %454 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %452, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %455 unwind label %216

455:                                              ; preds = %453
  br label %456

456:                                              ; preds = %455, %445
  br label %457

457:                                              ; preds = %456
  br label %458

458:                                              ; preds = %457
  br label %459

459:                                              ; preds = %458, %439
  br label %460

460:                                              ; preds = %459, %265
  %461 = load i8, ptr %9, align 1, !tbaa !9, !range !14, !noundef !15
  %462 = trunc i8 %461 to i1
  br i1 %462, label %463, label %471

463:                                              ; preds = %460
  %464 = getelementptr inbounds %class.MirBuilder, ptr %63, i32 0, i32 7
  %465 = load i8, ptr %464, align 4, !tbaa !16, !range !14, !noundef !15
  %466 = trunc i8 %465 to i1
  br i1 %466, label %467, label %468

467:                                              ; preds = %463
  br label %470

468:                                              ; preds = %463
  call void @__assert_fail(ptr noundef @.str.61, ptr noundef @.str.7, i32 noundef 1489, ptr noundef @__PRETTY_FUNCTION__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb) #10
  unreachable

469:                                              ; No predecessors!
  br label %470

470:                                              ; preds = %469, %467
  br label %471

471:                                              ; preds = %470, %460
  %472 = load i8, ptr %10, align 1, !tbaa !9, !range !14, !noundef !15
  %473 = trunc i8 %472 to i1
  br i1 %473, label %651, label %474

474:                                              ; preds = %471
  call void @llvm.lifetime.start.p0(i64 104, ptr %46) #8
  call void @_ZN8SplitArmC2Ev(ptr noundef nonnull align 8 dereferenceable(104) %46) #8
  br label %475

475:                                              ; preds = %474
  %476 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %477 unwind label %488

477:                                              ; preds = %475
  br i1 %476, label %478, label %492

478:                                              ; preds = %477
  %479 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !65
  %480 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %479, ptr noundef @__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb)
          to label %481 unwind label %488

481:                                              ; preds = %478
  %482 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %480, ptr noundef @.str.62)
          to label %483 unwind label %488

483:                                              ; preds = %481
  %484 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %482, ptr noundef @_ZSt3decRSt8ios_base)
          to label %485 unwind label %488

485:                                              ; preds = %483
  %486 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %484, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %487 unwind label %488

487:                                              ; preds = %485
  br label %492

488:                                              ; preds = %646, %485, %483, %481, %478, %475
  %489 = landingpad { ptr, i32 }
          cleanup
  %490 = extractvalue { ptr, i32 } %489, 0
  store ptr %490, ptr %14, align 8
  %491 = extractvalue { ptr, i32 } %489, 1
  store i32 %491, ptr %15, align 4
  br label %650

492:                                              ; preds = %487, %477
  br label %493

493:                                              ; preds = %492
  br label %494

494:                                              ; preds = %493
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #8
  %495 = load ptr, ptr %20, align 8, !tbaa !5
  %496 = getelementptr inbounds %"struct.ScopeType::Data_Split", ptr %495, i32 0, i32 1
  %497 = getelementptr inbounds %struct.SplitEnd, ptr %496, i32 0, i32 0
  store ptr %497, ptr %47, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #8
  %498 = load ptr, ptr %47, align 8, !tbaa !5
  %499 = call ptr @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %498) #8
  %500 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %48, i32 0, i32 0
  store ptr %499, ptr %500, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #8
  %501 = load ptr, ptr %47, align 8, !tbaa !5
  %502 = call ptr @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %501) #8
  %503 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %49, i32 0, i32 0
  store ptr %502, ptr %503, align 8
  br label %504

504:                                              ; preds = %553, %494
  %505 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEES6_(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 8 dereferenceable(8) %49) #8
  br i1 %505, label %507, label %506

506:                                              ; preds = %504
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  br label %570

507:                                              ; preds = %504
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #8
  %508 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #8
  store ptr %508, ptr %50, align 8, !tbaa !5
  br label %509

509:                                              ; preds = %507
  %510 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %511 unwind label %533

511:                                              ; preds = %509
  br i1 %510, label %512, label %537

512:                                              ; preds = %511
  %513 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !65
  %514 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %513, ptr noundef @__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb)
          to label %515 unwind label %533

515:                                              ; preds = %512
  %516 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %514, ptr noundef @.str.63)
          to label %517 unwind label %533

517:                                              ; preds = %515
  %518 = load ptr, ptr %50, align 8, !tbaa !5
  %519 = getelementptr inbounds %"struct.std::pair.471", ptr %518, i32 0, i32 0
  %520 = load i32, ptr %519, align 8, !tbaa !69
  %521 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %516, i32 noundef %520)
          to label %522 unwind label %533

522:                                              ; preds = %517
  %523 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %521, ptr noundef @.str.14)
          to label %524 unwind label %533

524:                                              ; preds = %522
  %525 = load ptr, ptr %50, align 8, !tbaa !5
  %526 = getelementptr inbounds %"struct.std::pair.471", ptr %525, i32 0, i32 2
  %527 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8VarState(ptr noundef nonnull align 8 dereferenceable(8) %523, ptr noundef nonnull align 8 dereferenceable(40) %526)
          to label %528 unwind label %533

528:                                              ; preds = %524
  %529 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %527, ptr noundef @_ZSt3decRSt8ios_base)
          to label %530 unwind label %533

530:                                              ; preds = %528
  %531 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %529, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %532 unwind label %533

532:                                              ; preds = %530
  br label %537

533:                                              ; preds = %530, %528, %524, %522, %517, %515, %512, %509
  %534 = landingpad { ptr, i32 }
          cleanup
  %535 = extractvalue { ptr, i32 } %534, 0
  store ptr %535, ptr %14, align 8
  %536 = extractvalue { ptr, i32 } %534, 1
  store i32 %536, ptr %15, align 4
  br label %569

537:                                              ; preds = %532, %511
  br label %538

538:                                              ; preds = %537
  br label %539

539:                                              ; preds = %538
  %540 = getelementptr inbounds %struct.SplitArm, ptr %46, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 48, ptr %51) #8
  %541 = load ptr, ptr %50, align 8, !tbaa !5
  %542 = getelementptr inbounds %"struct.std::pair.471", ptr %541, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 40, ptr %52) #8
  %543 = load ptr, ptr %50, align 8, !tbaa !5
  %544 = getelementptr inbounds %"struct.std::pair.471", ptr %543, i32 0, i32 2
  invoke void @_ZNK8VarState5cloneEv(ptr dead_on_unwind writable sret(%class.VarState) align 8 %52, ptr noundef nonnull align 8 dereferenceable(40) %544)
          to label %545 unwind label %555

545:                                              ; preds = %539
  invoke void @_ZSt9make_pairIRKj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind writable sret(%"struct.std::pair.413") align 8 %51, ptr noundef nonnull align 4 dereferenceable(4) %542, ptr noundef nonnull align 8 dereferenceable(40) %52)
          to label %546 unwind label %559

546:                                              ; preds = %545
  %547 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %540, ptr noundef nonnull align 8 dereferenceable(48) %51)
          to label %548 unwind label %563

548:                                              ; preds = %546
  %549 = getelementptr inbounds { ptr, i8 }, ptr %53, i32 0, i32 0
  %550 = extractvalue { ptr, i8 } %547, 0
  store ptr %550, ptr %549, align 8
  %551 = getelementptr inbounds { ptr, i8 }, ptr %53, i32 0, i32 1
  %552 = extractvalue { ptr, i8 } %547, 1
  store i8 %552, ptr %551, align 8
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %51) #8
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %52) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %51) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  br label %553

553:                                              ; preds = %548
  %554 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKj8VarStateEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %48) #8
  br label %504

555:                                              ; preds = %539
  %556 = landingpad { ptr, i32 }
          cleanup
  %557 = extractvalue { ptr, i32 } %556, 0
  store ptr %557, ptr %14, align 8
  %558 = extractvalue { ptr, i32 } %556, 1
  store i32 %558, ptr %15, align 4
  br label %568

559:                                              ; preds = %545
  %560 = landingpad { ptr, i32 }
          cleanup
  %561 = extractvalue { ptr, i32 } %560, 0
  store ptr %561, ptr %14, align 8
  %562 = extractvalue { ptr, i32 } %560, 1
  store i32 %562, ptr %15, align 4
  br label %567

563:                                              ; preds = %546
  %564 = landingpad { ptr, i32 }
          cleanup
  %565 = extractvalue { ptr, i32 } %564, 0
  store ptr %565, ptr %14, align 8
  %566 = extractvalue { ptr, i32 } %564, 1
  store i32 %566, ptr %15, align 4
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %51) #8
  br label %567

567:                                              ; preds = %563, %559
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %52) #8
  br label %568

568:                                              ; preds = %567, %555
  call void @llvm.lifetime.end.p0(i64 40, ptr %52) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %51) #8
  br label %569

569:                                              ; preds = %568, %533
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  br label %650

570:                                              ; preds = %506
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #8
  %571 = load ptr, ptr %20, align 8, !tbaa !5
  %572 = getelementptr inbounds %"struct.ScopeType::Data_Split", ptr %571, i32 0, i32 1
  %573 = getelementptr inbounds %struct.SplitEnd, ptr %572, i32 0, i32 1
  store ptr %573, ptr %54, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #8
  %574 = load ptr, ptr %54, align 8, !tbaa !5
  %575 = call ptr @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %574) #8
  %576 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %55, i32 0, i32 0
  store ptr %575, ptr %576, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #8
  %577 = load ptr, ptr %54, align 8, !tbaa !5
  %578 = call ptr @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %577) #8
  %579 = getelementptr inbounds %"struct.std::_Rb_tree_iterator", ptr %56, i32 0, i32 0
  store ptr %578, ptr %579, align 8
  br label %580

580:                                              ; preds = %629, %570
  %581 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEES6_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %56) #8
  br i1 %581, label %583, label %582

582:                                              ; preds = %580
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  br label %646

583:                                              ; preds = %580
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #8
  %584 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  store ptr %584, ptr %57, align 8, !tbaa !5
  br label %585

585:                                              ; preds = %583
  %586 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %587 unwind label %609

587:                                              ; preds = %585
  br i1 %586, label %588, label %613

588:                                              ; preds = %587
  %589 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !65
  %590 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %589, ptr noundef @__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb)
          to label %591 unwind label %609

591:                                              ; preds = %588
  %592 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %590, ptr noundef @.str.64)
          to label %593 unwind label %609

593:                                              ; preds = %591
  %594 = load ptr, ptr %57, align 8, !tbaa !5
  %595 = getelementptr inbounds %"struct.std::pair.471", ptr %594, i32 0, i32 0
  %596 = load i32, ptr %595, align 8, !tbaa !69
  %597 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %592, i32 noundef %596)
          to label %598 unwind label %609

598:                                              ; preds = %593
  %599 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %597, ptr noundef @.str.38)
          to label %600 unwind label %609

600:                                              ; preds = %598
  %601 = load ptr, ptr %57, align 8, !tbaa !5
  %602 = getelementptr inbounds %"struct.std::pair.471", ptr %601, i32 0, i32 2
  %603 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8VarState(ptr noundef nonnull align 8 dereferenceable(8) %599, ptr noundef nonnull align 8 dereferenceable(40) %602)
          to label %604 unwind label %609

604:                                              ; preds = %600
  %605 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %603, ptr noundef @_ZSt3decRSt8ios_base)
          to label %606 unwind label %609

606:                                              ; preds = %604
  %607 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %605, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %608 unwind label %609

608:                                              ; preds = %606
  br label %613

609:                                              ; preds = %606, %604, %600, %598, %593, %591, %588, %585
  %610 = landingpad { ptr, i32 }
          cleanup
  %611 = extractvalue { ptr, i32 } %610, 0
  store ptr %611, ptr %14, align 8
  %612 = extractvalue { ptr, i32 } %610, 1
  store i32 %612, ptr %15, align 4
  br label %645

613:                                              ; preds = %608, %587
  br label %614

614:                                              ; preds = %613
  br label %615

615:                                              ; preds = %614
  %616 = getelementptr inbounds %struct.SplitArm, ptr %46, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 48, ptr %58) #8
  %617 = load ptr, ptr %57, align 8, !tbaa !5
  %618 = getelementptr inbounds %"struct.std::pair.471", ptr %617, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 40, ptr %59) #8
  %619 = load ptr, ptr %57, align 8, !tbaa !5
  %620 = getelementptr inbounds %"struct.std::pair.471", ptr %619, i32 0, i32 2
  invoke void @_ZNK8VarState5cloneEv(ptr dead_on_unwind writable sret(%class.VarState) align 8 %59, ptr noundef nonnull align 8 dereferenceable(40) %620)
          to label %621 unwind label %631

621:                                              ; preds = %615
  invoke void @_ZSt9make_pairIRKj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind writable sret(%"struct.std::pair.413") align 8 %58, ptr noundef nonnull align 4 dereferenceable(4) %618, ptr noundef nonnull align 8 dereferenceable(40) %59)
          to label %622 unwind label %635

622:                                              ; preds = %621
  %623 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %616, ptr noundef nonnull align 8 dereferenceable(48) %58)
          to label %624 unwind label %639

624:                                              ; preds = %622
  %625 = getelementptr inbounds { ptr, i8 }, ptr %60, i32 0, i32 0
  %626 = extractvalue { ptr, i8 } %623, 0
  store ptr %626, ptr %625, align 8
  %627 = getelementptr inbounds { ptr, i8 }, ptr %60, i32 0, i32 1
  %628 = extractvalue { ptr, i8 } %623, 1
  store i8 %628, ptr %627, align 8
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %58) #8
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %59) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %58) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  br label %629

629:                                              ; preds = %624
  %630 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKj8VarStateEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  br label %580

631:                                              ; preds = %615
  %632 = landingpad { ptr, i32 }
          cleanup
  %633 = extractvalue { ptr, i32 } %632, 0
  store ptr %633, ptr %14, align 8
  %634 = extractvalue { ptr, i32 } %632, 1
  store i32 %634, ptr %15, align 4
  br label %644

635:                                              ; preds = %621
  %636 = landingpad { ptr, i32 }
          cleanup
  %637 = extractvalue { ptr, i32 } %636, 0
  store ptr %637, ptr %14, align 8
  %638 = extractvalue { ptr, i32 } %636, 1
  store i32 %638, ptr %15, align 4
  br label %643

639:                                              ; preds = %622
  %640 = landingpad { ptr, i32 }
          cleanup
  %641 = extractvalue { ptr, i32 } %640, 0
  store ptr %641, ptr %14, align 8
  %642 = extractvalue { ptr, i32 } %640, 1
  store i32 %642, ptr %15, align 4
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %58) #8
  br label %643

643:                                              ; preds = %639, %635
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %59) #8
  br label %644

644:                                              ; preds = %643, %631
  call void @llvm.lifetime.end.p0(i64 40, ptr %59) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %58) #8
  br label %645

645:                                              ; preds = %644, %609
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #8
  br label %650

646:                                              ; preds = %582
  %647 = load ptr, ptr %20, align 8, !tbaa !5
  %648 = getelementptr inbounds %"struct.ScopeType::Data_Split", ptr %647, i32 0, i32 3
  invoke void @_ZNSt6vectorI8SplitArmSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %648, ptr noundef nonnull align 8 dereferenceable(104) %46)
          to label %649 unwind label %488

649:                                              ; preds = %646
  call void @_ZN8SplitArmD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %46) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr %46) #8
  br label %651

650:                                              ; preds = %645, %569, %488
  call void @_ZN8SplitArmD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %46) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr %46) #8
  br label %652

651:                                              ; preds = %649, %471
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %24) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  ret void

652:                                              ; preds = %650, %438, %361, %247, %216
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #8
  br label %653

653:                                              ; preds = %652, %178, %174, %173
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %24) #8
  br label %654

654:                                              ; preds = %653, %161
  call void @llvm.lifetime.end.p0(i64 40, ptr %24) #8
  br label %655

655:                                              ; preds = %654, %131, %127
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #8
  br label %656

656:                                              ; preds = %655, %108, %104
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  br label %657

657:                                              ; preds = %656, %81, %77
  %658 = load ptr, ptr %14, align 8
  %659 = load i32, ptr %15, align 4
  %660 = insertvalue { ptr, i32 } poison, ptr %658, 0
  %661 = insertvalue { ptr, i32 } %660, i32 %659, 1
  resume { ptr, i32 } %661

662:                                              ; preds = %160
  unreachable
}

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbENK3$_5clISt3mapIj8VarStateSt4lessIjESaISt4pairIKjS9_EEESG_NS_8SlotTypeEEEDaRKT_RT0_T1_"(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48), i32 noundef) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden void @"_ZZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbEN3$_5D2Ev"(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEES6_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(48) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKj8VarStateEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8SplitArmC2Ev(ptr noundef nonnull align 8 dereferenceable(104)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1 align 2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { noreturn }
attributes #10 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"bool", !7, i64 0}
!11 = !{!12, !13, i64 8}
!12 = !{!"_ZTS11ScopeHandle", !6, i64 0, !13, i64 8}
!13 = !{!"int", !7, i64 0}
!14 = !{i8 0, i8 2}
!15 = !{}
!16 = !{!17, !10, i64 52}
!17 = !{!"_ZTS10MirBuilder", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !13, i64 48, !10, i64 52, !18, i64 56, !10, i64 168, !20, i64 176, !22, i64 216, !22, i64 240, !26, i64 264, !27, i64 272, !35, i64 320, !39, i64 344, !12, i64 368, !43, i64 384, !47, i64 408}
!18 = !{!"_ZTSN3MIR6RValueE", !19, i64 0, !7, i64 8}
!19 = !{!"_ZTSN3MIR6RValue3TagE", !7, i64 0}
!20 = !{!"_ZTS8VarState", !21, i64 0, !7, i64 8}
!21 = !{!"_ZTSN8VarState3TagE", !7, i64 0}
!22 = !{!"_ZTSSt6vectorI8VarStateSaIS0_EE", !23, i64 0}
!23 = !{!"_ZTSSt12_Vector_baseI8VarStateSaIS0_EE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseI8VarStateSaIS0_EE12_Vector_implE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseI8VarStateSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!26 = !{!"long", !7, i64 0}
!27 = !{!"_ZTSSt3mapIjjSt4lessIjESaISt4pairIKjjEEE", !28, i64 0}
!28 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE", !29, i64 0}
!29 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE13_Rb_tree_implIS6_Lb1EEE", !30, i64 0, !32, i64 8}
!30 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIjEE", !31, i64 0}
!31 = !{!"_ZTSSt4lessIjE"}
!32 = !{!"_ZTSSt15_Rb_tree_header", !33, i64 0, !26, i64 32}
!33 = !{!"_ZTSSt18_Rb_tree_node_base", !34, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!34 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!35 = !{!"_ZTSSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseIN10MirBuilder8ScopeDefESaIS1_EE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIN10MirBuilder8ScopeDefESaIS1_EE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIN10MirBuilder8ScopeDefESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!39 = !{!"_ZTSSt6vectorIjSaIjEE", !40, i64 0}
!40 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!43 = !{!"_ZTSSt6vectorISt4pairIN3HIR14PatternBinding4TypeEN3MIR6LValueEESaIS6_EE", !44, i64 0}
!44 = !{!"_ZTSSt12_Vector_baseISt4pairIN3HIR14PatternBinding4TypeEN3MIR6LValueEESaIS6_EE", !45, i64 0}
!45 = !{!"_ZTSNSt12_Vector_baseISt4pairIN3HIR14PatternBinding4TypeEN3MIR6LValueEESaIS6_EE12_Vector_implE", !46, i64 0}
!46 = !{!"_ZTSNSt12_Vector_baseISt4pairIN3HIR14PatternBinding4TypeEN3MIR6LValueEESaIS6_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!47 = !{!"_ZTSN3MIR6LValueE", !48, i64 0, !49, i64 8}
!48 = !{!"_ZTSN3MIR6LValue7StorageE", !26, i64 0}
!49 = !{!"_ZTSSt6vectorIN3MIR6LValue7WrapperESaIS2_EE", !50, i64 0}
!50 = !{!"_ZTSSt12_Vector_baseIN3MIR6LValue7WrapperESaIS2_EE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseIN3MIR6LValue7WrapperESaIS2_EE12_Vector_implE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseIN3MIR6LValue7WrapperESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!53 = !{!54, !10, i64 1}
!54 = !{!"_ZTS8SplitArm", !10, i64 0, !10, i64 1, !55, i64 8, !55, i64 56}
!55 = !{!"_ZTSSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE", !56, i64 0}
!56 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKj8VarStateESt10_Select1stIS3_ESt4lessIjESaIS3_EE", !57, i64 0}
!57 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKj8VarStateESt10_Select1stIS3_ESt4lessIjESaIS3_EE13_Rb_tree_implIS7_Lb1EEE", !30, i64 0, !32, i64 8}
!58 = !{!59, !10, i64 0}
!59 = !{!"_ZTSN9ScopeType10Data_SplitE", !10, i64 0, !60, i64 8, !60, i64 104, !61, i64 200}
!60 = !{!"_ZTS8SplitEnd", !55, i64 0, !55, i64 48}
!61 = !{!"_ZTSSt6vectorI8SplitArmSaIS0_EE", !62, i64 0}
!62 = !{!"_ZTSSt12_Vector_baseI8SplitArmSaIS0_EE", !63, i64 0}
!63 = !{!"_ZTSNSt12_Vector_baseI8SplitArmSaIS0_EE12_Vector_implE", !64, i64 0}
!64 = !{!"_ZTSNSt12_Vector_baseI8SplitArmSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!65 = !{!13, !13, i64 0}
!66 = !{!67, !6, i64 8}
!67 = !{!"_ZTSZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_5", !68, i64 0, !6, i64 8}
!68 = !{!"_ZTS4Span", !6, i64 0}
!69 = !{!70, !13, i64 0}
!70 = !{!"_ZTSSt4pairIKj8VarStateE", !13, i64 0, !20, i64 8}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"struct.std::pair.413" = type { i32, [4 x i8], %class.VarState }
%class.VarState = type { i32, [4 x i8], %"union.VarState::DataUnion" }
%"union.VarState::DataUnion" = type { i32, [28 x i8] }
%struct.Span = type { ptr }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%class.anon.462 = type { i8 }
%class.anon.464 = type { ptr }
%class.anon.465 = type { i8 }
%class.TraceLog = type { ptr, %"class.std::function" }
%class.anon.467 = type { ptr, ptr, ptr, ptr }
%class.anon.468 = type { i8 }
%class.anon.470 = type { %struct.Span, ptr }
%"struct.std::_Rb_tree_iterator" = type { ptr }
%struct.SplitArm = type { i8, i8, %"class.std::map.252", %"class.std::map.252" }
%"class.std::map.252" = type { %"class.std::_Rb_tree.253" }
%"class.std::_Rb_tree.253" = type { %"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, VarState>, std::_Select1st<std::pair<const unsigned int, VarState>>, std::less<unsigned int>>::_Rb_tree_impl" }
%"struct.std::_Rb_tree<unsigned int, std::pair<const unsigned int, VarState>, std::_Select1st<std::pair<const unsigned int, VarState>>, std::less<unsigned int>>::_Rb_tree_impl" = type { [8 x i8], %"struct.std::_Rb_tree_header" }
%"struct.std::_Rb_tree_header" = type { %"struct.std::_Rb_tree_node_base", i64 }
%"struct.std::_Rb_tree_node_base" = type { i32, ptr, ptr, ptr }

@g_debug_indent_level = external local_unnamed_addr global i32, align 4
@.str.7 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@.str.14 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [5 x i8], align 1
@__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb = external hidden unnamed_addr constant [14 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [10 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [15 x i8], align 1
@__PRETTY_FUNCTION__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb = external hidden unnamed_addr constant [78 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [21 x i8], align 1

declare i32 @__gxx_personality_v0(...)

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #1 align 2

declare noundef zeroext i1 @_Z13debug_enabledv() local_unnamed_addr #2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #3

declare noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(216) ptr @_ZSt3decRSt8ios_base(ptr noundef nonnull align 8 dereferenceable(216)) #3

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_(ptr noundef nonnull align 8 dereferenceable(8)) #3

declare void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40), ptr noundef, ptr noundef) unnamed_addr #2

; Function Attrs: nounwind
declare void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40)) unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(256) ptr @_ZNSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #4 align 2

; Function Attrs: noreturn nounwind
declare void @__assert_fail(ptr noundef, ptr noundef, i32 noundef, ptr noundef) local_unnamed_addr #6

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(224) ptr @_ZN9ScopeType8as_SplitEv(ptr noundef nonnull align 8 dereferenceable(240)) local_unnamed_addr #1 align 2

declare void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind
declare void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #5

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

declare void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef) unnamed_addr #2

declare void @__cxa_free_exception(ptr) local_unnamed_addr

; Function Attrs: nounwind
declare void @_ZNSt13runtime_errorD1Ev(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #5

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNK9ScopeType8is_SplitEv(ptr noundef nonnull align 8 dereferenceable(240)) local_unnamed_addr #1 align 2

declare void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8VarState(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #4

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIRKj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.413") align 8, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #4

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(104) ptr @_ZNSt6vectorI8SplitArmSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK8VarState5cloneEv(ptr dead_on_unwind noalias writable sret(%class.VarState) align 8, ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNKSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt6vectorI8SplitArmSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(104)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8SplitArmD2Ev(ptr noundef nonnull align 8 dereferenceable(104)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZNKSt6vectorI8SplitArmSaIS0_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb(ptr noundef nonnull align 8 dereferenceable(440) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(12) %2, i1 noundef zeroext %3, i1 noundef zeroext %4) local_unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca i8, align 1
  %7 = alloca i8, align 1
  %8 = alloca %struct.Span, align 8
  %9 = alloca %"class.std::function", align 8
  %10 = alloca %class.anon.462, align 1
  %11 = alloca %struct.Span, align 8
  %12 = alloca %"class.std::function", align 8
  %13 = alloca %class.anon.464, align 8
  %14 = alloca %struct.Span, align 8
  %15 = alloca %"class.std::function", align 8
  %16 = alloca %class.anon.465, align 1
  %17 = alloca %class.TraceLog, align 8
  %18 = alloca %"class.std::function", align 8
  %19 = alloca %class.anon.467, align 8
  %20 = alloca %struct.Span, align 8
  %21 = alloca %"class.std::function", align 8
  %22 = alloca %class.anon.468, align 1
  %23 = alloca %class.anon.470, align 8
  %24 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %25 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %26 = alloca %"struct.std::pair.413", align 8
  %27 = alloca %class.VarState, align 8
  %28 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %29 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %30 = alloca %"struct.std::pair.413", align 8
  %31 = alloca %class.VarState, align 8
  %32 = alloca %struct.SplitArm, align 8
  %33 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %34 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %35 = alloca %"struct.std::pair.413", align 8
  %36 = alloca %class.VarState, align 8
  %37 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %38 = alloca %"struct.std::_Rb_tree_iterator", align 8
  %39 = alloca %"struct.std::pair.413", align 8
  %40 = alloca %class.VarState, align 8
  %41 = zext i1 %3 to i8
  store i8 %41, ptr %6, align 1, !tbaa !5
  %42 = zext i1 %4 to i8
  store i8 %42, ptr %7, align 1, !tbaa !5
  %43 = getelementptr inbounds i8, ptr %2, i64 8
  %44 = load i32, ptr %43, align 8, !tbaa !9
  %45 = zext i32 %44 to i64
  %46 = getelementptr inbounds i8, ptr %0, i64 320
  %47 = tail call noundef i64 @_ZNKSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %46) #8
  %48 = icmp ugt i64 %47, %45
  br i1 %48, label %57, label %49

49:                                               ; preds = %5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #8
  call void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(8) %1)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 1 dereferenceable(1) %10) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull %9)
          to label %50 unwind label %53

50:                                               ; preds = %49
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #8
  %51 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %51, ptr noundef nonnull @.str.9)
          to label %52 unwind label %55

52:                                               ; preds = %50
  call void @__cxa_throw(ptr nonnull %51, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
  unreachable

53:                                               ; preds = %49
  %54 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #8
  br label %391

55:                                               ; preds = %50
  %56 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %51) #8
  br label %391

57:                                               ; preds = %5
  %58 = load i32, ptr %43, align 8, !tbaa !9
  %59 = zext i32 %58 to i64
  %60 = tail call noundef nonnull align 8 dereferenceable(256) ptr @_ZNSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %46, i64 noundef %59)
  %61 = getelementptr inbounds i8, ptr %60, i64 16
  %62 = tail call noundef zeroext i1 @_ZNK9ScopeType8is_SplitEv(ptr noundef nonnull align 8 dereferenceable(240) %61)
  br i1 %62, label %71, label %63

63:                                               ; preds = %57
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #8
  call void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %1)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #8
  store ptr %60, ptr %13, align 8, !tbaa !13
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(8) %13) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull %12)
          to label %64 unwind label %67

64:                                               ; preds = %63
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  %65 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %65, ptr noundef nonnull @.str.9)
          to label %66 unwind label %69

66:                                               ; preds = %64
  call void @__cxa_throw(ptr nonnull %65, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
  unreachable

67:                                               ; preds = %63
  %68 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  br label %391

69:                                               ; preds = %64
  %70 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %65) #8
  br label %391

71:                                               ; preds = %57
  %72 = tail call noundef nonnull align 8 dereferenceable(224) ptr @_ZN9ScopeType8as_SplitEv(ptr noundef nonnull align 8 dereferenceable(240) %61)
  %73 = getelementptr inbounds i8, ptr %72, i64 200
  %74 = tail call noundef zeroext i1 @_ZNKSt6vectorI8SplitArmSaIS0_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %73) #8
  br i1 %74, label %75, label %83

75:                                               ; preds = %71
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #8
  call void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %1)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %16) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull %15)
          to label %76 unwind label %79

76:                                               ; preds = %75
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #8
  %77 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %77, ptr noundef nonnull @.str.9)
          to label %78 unwind label %81

78:                                               ; preds = %76
  call void @__cxa_throw(ptr nonnull %77, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
  unreachable

79:                                               ; preds = %75
  %80 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %16) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #8
  br label %391

81:                                               ; preds = %76
  %82 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %77) #8
  br label %391

83:                                               ; preds = %71
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %17) #8
  %84 = tail call noundef zeroext i1 @_Z13debug_enabledv()
  %85 = select i1 %84, ptr @__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb, ptr null
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #8
  store ptr %2, ptr %19, align 8, !tbaa !13
  %86 = getelementptr inbounds i8, ptr %19, i64 8
  store ptr %72, ptr %86, align 8, !tbaa !13
  %87 = getelementptr inbounds i8, ptr %19, i64 16
  store ptr %6, ptr %87, align 8, !tbaa !13
  %88 = getelementptr inbounds i8, ptr %19, i64 24
  store ptr %7, ptr %88, align 8, !tbaa !13
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %19)
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40) %17, ptr noundef %85, ptr noundef nonnull %18)
          to label %89 unwind label %101

89:                                               ; preds = %83
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #8
  %90 = load i8, ptr %6, align 1, !tbaa !5, !range !14, !noundef !15
  %91 = trunc nuw i8 %90 to i1
  br i1 %91, label %92, label %112

92:                                               ; preds = %89
  %93 = getelementptr inbounds i8, ptr %0, i64 52
  %94 = load i8, ptr %93, align 4, !tbaa !16, !range !14, !noundef !15
  %95 = trunc nuw i8 %94 to i1
  br i1 %95, label %112, label %96

96:                                               ; preds = %92
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %97 unwind label %103

97:                                               ; preds = %96
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %22) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 1 dereferenceable(1) %22) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull %21)
          to label %98 unwind label %105

98:                                               ; preds = %97
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #8
  %99 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %99, ptr noundef nonnull @.str.9)
          to label %100 unwind label %108

100:                                              ; preds = %98
  invoke void @__cxa_throw(ptr nonnull %99, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %392 unwind label %110

101:                                              ; preds = %83
  %102 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #8
  br label %390

103:                                              ; preds = %96
  %104 = landingpad { ptr, i32 }
          cleanup
  br label %107

105:                                              ; preds = %97
  %106 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %22) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %20) #8
  br label %107

107:                                              ; preds = %105, %103
  %.pn = phi { ptr, i32 } [ %106, %105 ], [ %104, %103 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #8
  br label %389

108:                                              ; preds = %98
  %109 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %99) #8
  br label %389

110:                                              ; preds = %100
  %111 = landingpad { ptr, i32 }
          cleanup
  br label %389

112:                                              ; preds = %92, %89
  %113 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZNSt6vectorI8SplitArmSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %73) #8
  %114 = load i8, ptr %6, align 1, !tbaa !5, !range !14, !noundef !15
  %115 = xor i8 %114, 1
  %116 = getelementptr inbounds i8, ptr %113, i64 1
  store i8 %115, ptr %116, align 1, !tbaa !53
  %117 = load i8, ptr %72, align 8, !tbaa !58, !range !14, !noundef !15
  %118 = trunc nuw i8 %117 to i1
  %119 = trunc nuw i8 %114 to i1
  br i1 %118, label %120, label %155

120:                                              ; preds = %112
  br i1 %119, label %121, label %149

121:                                              ; preds = %120
  %122 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %123 unwind label %133

123:                                              ; preds = %121
  br i1 %122, label %124, label %135

124:                                              ; preds = %123
  %125 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !65
  %126 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %125, ptr noundef nonnull @__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb)
          to label %127 unwind label %133

127:                                              ; preds = %124
  %128 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %126, ptr noundef nonnull @.str.55)
          to label %129 unwind label %133

129:                                              ; preds = %127
  %130 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %128, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %131 unwind label %133

131:                                              ; preds = %129
  %132 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %130, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %135 unwind label %133

133:                                              ; preds = %.invoke118, %.invoke117, %.invoke, %262, %259, %166, %164, %162, %159, %156, %152, %149, %131, %129, %127, %124, %121
  %134 = landingpad { ptr, i32 }
          cleanup
  br label %389

135:                                              ; preds = %131, %123
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %23) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %136 unwind label %144

136:                                              ; preds = %135
  %137 = getelementptr inbounds i8, ptr %23, i64 8
  store ptr %0, ptr %137, align 8, !tbaa !66
  %138 = getelementptr inbounds i8, ptr %113, i64 8
  %139 = getelementptr inbounds i8, ptr %72, i64 104
  invoke void @"_ZZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbENK3$_5clISt3mapIj8VarStateSt4lessIjESaISt4pairIKjS9_EEESG_NS_8SlotTypeEEEDaRKT_RT0_T1_"(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull align 8 dereferenceable(48) %138, ptr noundef nonnull align 8 dereferenceable(48) %139, i32 noundef 0)
          to label %140 unwind label %146

140:                                              ; preds = %136
  %141 = getelementptr inbounds i8, ptr %113, i64 56
  %142 = getelementptr inbounds i8, ptr %72, i64 152
  invoke void @"_ZZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbENK3$_5clISt3mapIj8VarStateSt4lessIjESaISt4pairIKjS9_EEESG_NS_8SlotTypeEEEDaRKT_RT0_T1_"(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull align 8 dereferenceable(48) %141, ptr noundef nonnull align 8 dereferenceable(48) %142, i32 noundef 1)
          to label %143 unwind label %146

143:                                              ; preds = %140
  call void @"_ZZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbEN3$_5D2Ev"(ptr noundef nonnull align 8 dereferenceable(16) %23) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #8
  br label %270

144:                                              ; preds = %135
  %145 = landingpad { ptr, i32 }
          cleanup
  br label %148

146:                                              ; preds = %140, %136
  %147 = landingpad { ptr, i32 }
          cleanup
  call void @"_ZZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbEN3$_5D2Ev"(ptr noundef nonnull align 8 dereferenceable(16) %23) #8
  br label %148

148:                                              ; preds = %146, %144
  %.pn90 = phi { ptr, i32 } [ %147, %146 ], [ %145, %144 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %23) #8
  br label %389

149:                                              ; preds = %120
  %150 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %151 unwind label %133

151:                                              ; preds = %149
  br i1 %150, label %152, label %270

152:                                              ; preds = %151
  %153 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !65
  %154 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %153, ptr noundef nonnull @__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb)
          to label %.invoke118 unwind label %133

155:                                              ; preds = %112
  br i1 %119, label %156, label %259

156:                                              ; preds = %155
  %157 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %158 unwind label %133

158:                                              ; preds = %156
  br i1 %157, label %159, label %168

159:                                              ; preds = %158
  %160 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !65
  %161 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %160, ptr noundef nonnull @__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb)
          to label %162 unwind label %133

162:                                              ; preds = %159
  %163 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %161, ptr noundef nonnull @.str.57)
          to label %164 unwind label %133

164:                                              ; preds = %162
  %165 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %163, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %166 unwind label %133

166:                                              ; preds = %164
  %167 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %165, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %168 unwind label %133

168:                                              ; preds = %166, %158
  %169 = getelementptr inbounds i8, ptr %113, i64 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #8
  %170 = call ptr @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %169) #8
  store ptr %170, ptr %24, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #8
  %171 = call ptr @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %169) #8
  store ptr %171, ptr %25, align 8
  %172 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEES6_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %25) #8
  br i1 %172, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %168
  %173 = getelementptr inbounds i8, ptr %72, i64 104
  br label %179

._crit_edge:                                      ; preds = %207, %168
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  %174 = getelementptr inbounds i8, ptr %113, i64 56
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #8
  %175 = call ptr @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %174) #8
  store ptr %175, ptr %28, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #8
  %176 = call ptr @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %174) #8
  store ptr %176, ptr %29, align 8
  %177 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEES6_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %29) #8
  br i1 %177, label %.lr.ph109, label %._crit_edge110

.lr.ph109:                                        ; preds = %._crit_edge
  %178 = getelementptr inbounds i8, ptr %72, i64 152
  br label %219

179:                                              ; preds = %.lr.ph, %207
  %180 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #8
  %181 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %182 unwind label %200

182:                                              ; preds = %179
  br i1 %181, label %183, label %202

183:                                              ; preds = %182
  %184 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !65
  %185 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %184, ptr noundef nonnull @__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb)
          to label %186 unwind label %200

186:                                              ; preds = %183
  %187 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %185, ptr noundef nonnull @.str.58)
          to label %188 unwind label %200

188:                                              ; preds = %186
  %189 = load i32, ptr %180, align 8, !tbaa !69
  %190 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %187, i32 noundef %189)
          to label %191 unwind label %200

191:                                              ; preds = %188
  %192 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %190, ptr noundef nonnull @.str.14)
          to label %193 unwind label %200

193:                                              ; preds = %191
  %194 = getelementptr inbounds i8, ptr %180, i64 8
  %195 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8VarState(ptr noundef nonnull align 8 dereferenceable(8) %192, ptr noundef nonnull align 8 dereferenceable(40) %194)
          to label %196 unwind label %200

196:                                              ; preds = %193
  %197 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %195, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %198 unwind label %200

198:                                              ; preds = %196
  %199 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %197, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %202 unwind label %200

200:                                              ; preds = %198, %196, %193, %191, %188, %186, %183, %179
  %201 = landingpad { ptr, i32 }
          cleanup
  br label %218

202:                                              ; preds = %198, %182
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %26) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %27) #8
  %203 = getelementptr inbounds i8, ptr %180, i64 8
  invoke void @_ZNK8VarState5cloneEv(ptr dead_on_unwind nonnull writable sret(%class.VarState) align 8 %27, ptr noundef nonnull align 8 dereferenceable(40) %203)
          to label %204 unwind label %210

204:                                              ; preds = %202
  invoke void @_ZSt9make_pairIRKj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.413") align 8 %26, ptr noundef nonnull align 4 dereferenceable(4) %180, ptr noundef nonnull align 8 dereferenceable(40) %27)
          to label %205 unwind label %212

205:                                              ; preds = %204
  %206 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %173, ptr noundef nonnull align 8 dereferenceable(48) %26)
          to label %207 unwind label %214

207:                                              ; preds = %205
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %26) #8
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %27) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %26) #8
  %208 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKj8VarStateEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #8
  %209 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEES6_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %25) #8
  br i1 %209, label %179, label %._crit_edge

210:                                              ; preds = %202
  %211 = landingpad { ptr, i32 }
          cleanup
  br label %217

212:                                              ; preds = %204
  %213 = landingpad { ptr, i32 }
          cleanup
  br label %216

214:                                              ; preds = %205
  %215 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %26) #8
  br label %216

216:                                              ; preds = %214, %212
  %.pn86 = phi { ptr, i32 } [ %215, %214 ], [ %213, %212 ]
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %27) #8
  br label %217

217:                                              ; preds = %216, %210
  %.pn86.pn = phi { ptr, i32 } [ %.pn86, %216 ], [ %211, %210 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %26) #8
  br label %218

218:                                              ; preds = %217, %200
  %.pn86.pn.pn = phi { ptr, i32 } [ %.pn86.pn, %217 ], [ %201, %200 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #8
  br label %389

._crit_edge110:                                   ; preds = %247, %._crit_edge
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #8
  store i8 1, ptr %72, align 8, !tbaa !58
  br label %270

219:                                              ; preds = %.lr.ph109, %247
  %220 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  %221 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %222 unwind label %240

222:                                              ; preds = %219
  br i1 %221, label %223, label %242

223:                                              ; preds = %222
  %224 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !65
  %225 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %224, ptr noundef nonnull @__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb)
          to label %226 unwind label %240

226:                                              ; preds = %223
  %227 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %225, ptr noundef nonnull @.str.59)
          to label %228 unwind label %240

228:                                              ; preds = %226
  %229 = load i32, ptr %220, align 8, !tbaa !69
  %230 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %227, i32 noundef %229)
          to label %231 unwind label %240

231:                                              ; preds = %228
  %232 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %230, ptr noundef nonnull @.str.38)
          to label %233 unwind label %240

233:                                              ; preds = %231
  %234 = getelementptr inbounds i8, ptr %220, i64 8
  %235 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8VarState(ptr noundef nonnull align 8 dereferenceable(8) %232, ptr noundef nonnull align 8 dereferenceable(40) %234)
          to label %236 unwind label %240

236:                                              ; preds = %233
  %237 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %235, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %238 unwind label %240

238:                                              ; preds = %236
  %239 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %237, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %242 unwind label %240

240:                                              ; preds = %238, %236, %233, %231, %228, %226, %223, %219
  %241 = landingpad { ptr, i32 }
          cleanup
  br label %258

242:                                              ; preds = %238, %222
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %30) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %31) #8
  %243 = getelementptr inbounds i8, ptr %220, i64 8
  invoke void @_ZNK8VarState5cloneEv(ptr dead_on_unwind nonnull writable sret(%class.VarState) align 8 %31, ptr noundef nonnull align 8 dereferenceable(40) %243)
          to label %244 unwind label %250

244:                                              ; preds = %242
  invoke void @_ZSt9make_pairIRKj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.413") align 8 %30, ptr noundef nonnull align 4 dereferenceable(4) %220, ptr noundef nonnull align 8 dereferenceable(40) %31)
          to label %245 unwind label %252

245:                                              ; preds = %244
  %246 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %178, ptr noundef nonnull align 8 dereferenceable(48) %30)
          to label %247 unwind label %254

247:                                              ; preds = %245
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %30) #8
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %31) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %30) #8
  %248 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKj8VarStateEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  %249 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEES6_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %29) #8
  br i1 %249, label %219, label %._crit_edge110

250:                                              ; preds = %242
  %251 = landingpad { ptr, i32 }
          cleanup
  br label %257

252:                                              ; preds = %244
  %253 = landingpad { ptr, i32 }
          cleanup
  br label %256

254:                                              ; preds = %245
  %255 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %30) #8
  br label %256

256:                                              ; preds = %254, %252
  %.pn82 = phi { ptr, i32 } [ %255, %254 ], [ %253, %252 ]
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %31) #8
  br label %257

257:                                              ; preds = %256, %250
  %.pn82.pn = phi { ptr, i32 } [ %.pn82, %256 ], [ %251, %250 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %30) #8
  br label %258

258:                                              ; preds = %257, %240
  %.pn82.pn.pn = phi { ptr, i32 } [ %.pn82.pn, %257 ], [ %241, %240 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #8
  br label %389

259:                                              ; preds = %155
  %260 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %261 unwind label %133

261:                                              ; preds = %259
  br i1 %260, label %262, label %270

262:                                              ; preds = %261
  %263 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !65
  %264 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %263, ptr noundef nonnull @__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb)
          to label %.invoke118 unwind label %133

.invoke118:                                       ; preds = %262, %152
  %265 = phi ptr [ %154, %152 ], [ %264, %262 ]
  %266 = phi ptr [ @.str.56, %152 ], [ @.str.60, %262 ]
  %267 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %265, ptr noundef nonnull %266)
          to label %.invoke117 unwind label %133

.invoke117:                                       ; preds = %.invoke118
  %268 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %267, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %.invoke unwind label %133

.invoke:                                          ; preds = %.invoke117
  %269 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %268, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %270 unwind label %133

270:                                              ; preds = %.invoke, %._crit_edge110, %261, %143, %151
  %271 = load i8, ptr %6, align 1, !tbaa !5, !range !14, !noundef !15
  %272 = trunc nuw i8 %271 to i1
  br i1 %272, label %273, label %278

273:                                              ; preds = %270
  %274 = getelementptr inbounds i8, ptr %0, i64 52
  %275 = load i8, ptr %274, align 4, !tbaa !16, !range !14, !noundef !15
  %276 = trunc nuw i8 %275 to i1
  br i1 %276, label %278, label %277

277:                                              ; preds = %273
  call void @__assert_fail(ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.7, i32 noundef 1489, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb) #10
  unreachable

278:                                              ; preds = %273, %270
  %279 = load i8, ptr %7, align 1, !tbaa !5, !range !14, !noundef !15
  %280 = trunc nuw i8 %279 to i1
  br i1 %280, label %388, label %281

281:                                              ; preds = %278
  call void @llvm.lifetime.start.p0(i64 104, ptr nonnull %32) #8
  call void @_ZN8SplitArmC2Ev(ptr noundef nonnull align 8 dereferenceable(104) %32) #8
  %282 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %283 unwind label %293

283:                                              ; preds = %281
  br i1 %282, label %284, label %295

284:                                              ; preds = %283
  %285 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !65
  %286 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %285, ptr noundef nonnull @__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb)
          to label %287 unwind label %293

287:                                              ; preds = %284
  %288 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %286, ptr noundef nonnull @.str.62)
          to label %289 unwind label %293

289:                                              ; preds = %287
  %290 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %288, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %291 unwind label %293

291:                                              ; preds = %289
  %292 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %290, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %295 unwind label %293

293:                                              ; preds = %._crit_edge116, %291, %289, %287, %284, %281
  %294 = landingpad { ptr, i32 }
          cleanup
  br label %387

295:                                              ; preds = %291, %283
  %296 = getelementptr inbounds i8, ptr %72, i64 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #8
  %297 = call ptr @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %296) #8
  store ptr %297, ptr %33, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #8
  %298 = call ptr @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %296) #8
  store ptr %298, ptr %34, align 8
  %299 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEES6_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  br i1 %299, label %.lr.ph112, label %._crit_edge113

.lr.ph112:                                        ; preds = %295
  %300 = getelementptr inbounds i8, ptr %32, i64 8
  br label %306

._crit_edge113:                                   ; preds = %334, %295
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #8
  %301 = getelementptr inbounds i8, ptr %72, i64 56
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #8
  %302 = call ptr @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48) %301) #8
  store ptr %302, ptr %37, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #8
  %303 = call ptr @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48) %301) #8
  store ptr %303, ptr %38, align 8
  %304 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEES6_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %38) #8
  br i1 %304, label %.lr.ph115, label %._crit_edge116

.lr.ph115:                                        ; preds = %._crit_edge113
  %305 = getelementptr inbounds i8, ptr %32, i64 56
  br label %346

306:                                              ; preds = %.lr.ph112, %334
  %307 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  %308 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %309 unwind label %327

309:                                              ; preds = %306
  br i1 %308, label %310, label %329

310:                                              ; preds = %309
  %311 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !65
  %312 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %311, ptr noundef nonnull @__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb)
          to label %313 unwind label %327

313:                                              ; preds = %310
  %314 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %312, ptr noundef nonnull @.str.63)
          to label %315 unwind label %327

315:                                              ; preds = %313
  %316 = load i32, ptr %307, align 8, !tbaa !69
  %317 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %314, i32 noundef %316)
          to label %318 unwind label %327

318:                                              ; preds = %315
  %319 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %317, ptr noundef nonnull @.str.14)
          to label %320 unwind label %327

320:                                              ; preds = %318
  %321 = getelementptr inbounds i8, ptr %307, i64 8
  %322 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8VarState(ptr noundef nonnull align 8 dereferenceable(8) %319, ptr noundef nonnull align 8 dereferenceable(40) %321)
          to label %323 unwind label %327

323:                                              ; preds = %320
  %324 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %322, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %325 unwind label %327

325:                                              ; preds = %323
  %326 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %324, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %329 unwind label %327

327:                                              ; preds = %325, %323, %320, %318, %315, %313, %310, %306
  %328 = landingpad { ptr, i32 }
          cleanup
  br label %345

329:                                              ; preds = %325, %309
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %35) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %36) #8
  %330 = getelementptr inbounds i8, ptr %307, i64 8
  invoke void @_ZNK8VarState5cloneEv(ptr dead_on_unwind nonnull writable sret(%class.VarState) align 8 %36, ptr noundef nonnull align 8 dereferenceable(40) %330)
          to label %331 unwind label %337

331:                                              ; preds = %329
  invoke void @_ZSt9make_pairIRKj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.413") align 8 %35, ptr noundef nonnull align 4 dereferenceable(4) %307, ptr noundef nonnull align 8 dereferenceable(40) %36)
          to label %332 unwind label %339

332:                                              ; preds = %331
  %333 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %300, ptr noundef nonnull align 8 dereferenceable(48) %35)
          to label %334 unwind label %341

334:                                              ; preds = %332
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %35) #8
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %36) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %35) #8
  %335 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKj8VarStateEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  %336 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEES6_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #8
  br i1 %336, label %306, label %._crit_edge113

337:                                              ; preds = %329
  %338 = landingpad { ptr, i32 }
          cleanup
  br label %344

339:                                              ; preds = %331
  %340 = landingpad { ptr, i32 }
          cleanup
  br label %343

341:                                              ; preds = %332
  %342 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %35) #8
  br label %343

343:                                              ; preds = %341, %339
  %.pn96 = phi { ptr, i32 } [ %342, %341 ], [ %340, %339 ]
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %36) #8
  br label %344

344:                                              ; preds = %343, %337
  %.pn96.pn = phi { ptr, i32 } [ %.pn96, %343 ], [ %338, %337 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %36) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %35) #8
  br label %345

345:                                              ; preds = %344, %327
  %.pn96.pn.pn = phi { ptr, i32 } [ %.pn96.pn, %344 ], [ %328, %327 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #8
  br label %387

._crit_edge116:                                   ; preds = %374, %._crit_edge113
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #8
  invoke void @_ZNSt6vectorI8SplitArmSaIS0_EE9push_backEOS0_(ptr noundef nonnull align 8 dereferenceable(24) %73, ptr noundef nonnull align 8 dereferenceable(104) %32)
          to label %386 unwind label %293

346:                                              ; preds = %.lr.ph115, %374
  %347 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %37) #8
  %348 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %349 unwind label %367

349:                                              ; preds = %346
  br i1 %348, label %350, label %369

350:                                              ; preds = %349
  %351 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !65
  %352 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %351, ptr noundef nonnull @__func__._ZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebb)
          to label %353 unwind label %367

353:                                              ; preds = %350
  %354 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %352, ptr noundef nonnull @.str.64)
          to label %355 unwind label %367

355:                                              ; preds = %353
  %356 = load i32, ptr %347, align 8, !tbaa !69
  %357 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %354, i32 noundef %356)
          to label %358 unwind label %367

358:                                              ; preds = %355
  %359 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %357, ptr noundef nonnull @.str.38)
          to label %360 unwind label %367

360:                                              ; preds = %358
  %361 = getelementptr inbounds i8, ptr %347, i64 8
  %362 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK8VarState(ptr noundef nonnull align 8 dereferenceable(8) %359, ptr noundef nonnull align 8 dereferenceable(40) %361)
          to label %363 unwind label %367

363:                                              ; preds = %360
  %364 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %362, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %365 unwind label %367

365:                                              ; preds = %363
  %366 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %364, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %369 unwind label %367

367:                                              ; preds = %365, %363, %360, %358, %355, %353, %350, %346
  %368 = landingpad { ptr, i32 }
          cleanup
  br label %385

369:                                              ; preds = %365, %349
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %39) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %40) #8
  %370 = getelementptr inbounds i8, ptr %347, i64 8
  invoke void @_ZNK8VarState5cloneEv(ptr dead_on_unwind nonnull writable sret(%class.VarState) align 8 %40, ptr noundef nonnull align 8 dereferenceable(40) %370)
          to label %371 unwind label %377

371:                                              ; preds = %369
  invoke void @_ZSt9make_pairIRKj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.413") align 8 %39, ptr noundef nonnull align 4 dereferenceable(4) %347, ptr noundef nonnull align 8 dereferenceable(40) %40)
          to label %372 unwind label %379

372:                                              ; preds = %371
  %373 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %305, ptr noundef nonnull align 8 dereferenceable(48) %39)
          to label %374 unwind label %381

374:                                              ; preds = %372
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %39) #8
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %40) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %39) #8
  %375 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKj8VarStateEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %37) #8
  %376 = call noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEES6_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %38) #8
  br i1 %376, label %346, label %._crit_edge116

377:                                              ; preds = %369
  %378 = landingpad { ptr, i32 }
          cleanup
  br label %384

379:                                              ; preds = %371
  %380 = landingpad { ptr, i32 }
          cleanup
  br label %383

381:                                              ; preds = %372
  %382 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %39) #8
  br label %383

383:                                              ; preds = %381, %379
  %.pn92 = phi { ptr, i32 } [ %382, %381 ], [ %380, %379 ]
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %40) #8
  br label %384

384:                                              ; preds = %383, %377
  %.pn92.pn = phi { ptr, i32 } [ %.pn92, %383 ], [ %378, %377 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %40) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %39) #8
  br label %385

385:                                              ; preds = %384, %367
  %.pn92.pn.pn = phi { ptr, i32 } [ %.pn92.pn, %384 ], [ %368, %367 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #8
  br label %387

386:                                              ; preds = %._crit_edge116
  call void @_ZN8SplitArmD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %32) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %32) #8
  br label %388

387:                                              ; preds = %385, %345, %293
  %.pn96.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn, %345 ], [ %.pn92.pn.pn, %385 ], [ %294, %293 ]
  call void @_ZN8SplitArmD2Ev(ptr noundef nonnull align 8 dereferenceable(104) %32) #8
  call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %32) #8
  br label %389

388:                                              ; preds = %386, %278
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %17) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %17) #8
  ret void

389:                                              ; preds = %133, %148, %218, %258, %387, %110, %108, %107
  %.pn96.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %111, %110 ], [ %109, %108 ], [ %.pn, %107 ], [ %.pn96.pn.pn.pn, %387 ], [ %.pn90, %148 ], [ %134, %133 ], [ %.pn86.pn.pn, %218 ], [ %.pn82.pn.pn, %258 ]
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %17) #8
  br label %390

390:                                              ; preds = %389, %101
  %.pn96.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn96.pn.pn.pn.pn.pn, %389 ], [ %102, %101 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %17) #8
  br label %391

391:                                              ; preds = %67, %69, %390, %81, %79, %55, %53
  %.pn104.pn.pn = phi { ptr, i32 } [ %56, %55 ], [ %54, %53 ], [ %70, %69 ], [ %68, %67 ], [ %82, %81 ], [ %80, %79 ], [ %.pn96.pn.pn.pn.pn.pn.pn, %390 ]
  resume { ptr, i32 } %.pn104.pn.pn

392:                                              ; preds = %100
  unreachable
}

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbENK3$_5clISt3mapIj8VarStateSt4lessIjESaISt4pairIKjS9_EEESG_NS_8SlotTypeEEEDaRKT_RT0_T1_"(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(48), ptr noundef nonnull align 8 dereferenceable(48), i32 noundef) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare hidden void @"_ZZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbEN3$_5D2Ev"(ptr noundef nonnull align 8 dereferenceable(16)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE5beginEv(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local ptr @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE3endEv(ptr noundef nonnull align 8 dereferenceable(48)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZStneRKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEES6_(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(48) ptr @_ZNKSt17_Rb_tree_iteratorISt4pairIKj8VarStateEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt17_Rb_tree_iteratorISt4pairIKj8VarStateEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN8SplitArmC2Ev(ptr noundef nonnull align 8 dereferenceable(104)) unnamed_addr #7 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #1 align 2

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind }
attributes #9 = { noreturn }
attributes #10 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"bool", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !12, i64 8}
!10 = !{!"_ZTS11ScopeHandle", !11, i64 0, !12, i64 8}
!11 = !{!"any pointer", !7, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!11, !11, i64 0}
!14 = !{i8 0, i8 2}
!15 = !{}
!16 = !{!17, !6, i64 52}
!17 = !{!"_ZTS10MirBuilder", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !12, i64 48, !6, i64 52, !18, i64 56, !6, i64 168, !20, i64 176, !22, i64 216, !22, i64 240, !26, i64 264, !27, i64 272, !35, i64 320, !39, i64 344, !10, i64 368, !43, i64 384, !47, i64 408}
!18 = !{!"_ZTSN3MIR6RValueE", !19, i64 0, !7, i64 8}
!19 = !{!"_ZTSN3MIR6RValue3TagE", !7, i64 0}
!20 = !{!"_ZTS8VarState", !21, i64 0, !7, i64 8}
!21 = !{!"_ZTSN8VarState3TagE", !7, i64 0}
!22 = !{!"_ZTSSt6vectorI8VarStateSaIS0_EE", !23, i64 0}
!23 = !{!"_ZTSSt12_Vector_baseI8VarStateSaIS0_EE", !24, i64 0}
!24 = !{!"_ZTSNSt12_Vector_baseI8VarStateSaIS0_EE12_Vector_implE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseI8VarStateSaIS0_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!26 = !{!"long", !7, i64 0}
!27 = !{!"_ZTSSt3mapIjjSt4lessIjESaISt4pairIKjjEEE", !28, i64 0}
!28 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE", !29, i64 0}
!29 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE13_Rb_tree_implIS6_Lb1EEE", !30, i64 0, !32, i64 8}
!30 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIjEE", !31, i64 0}
!31 = !{!"_ZTSSt4lessIjE"}
!32 = !{!"_ZTSSt15_Rb_tree_header", !33, i64 0, !26, i64 32}
!33 = !{!"_ZTSSt18_Rb_tree_node_base", !34, i64 0, !11, i64 8, !11, i64 16, !11, i64 24}
!34 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!35 = !{!"_ZTSSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseIN10MirBuilder8ScopeDefESaIS1_EE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIN10MirBuilder8ScopeDefESaIS1_EE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIN10MirBuilder8ScopeDefESaIS1_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!39 = !{!"_ZTSSt6vectorIjSaIjEE", !40, i64 0}
!40 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!43 = !{!"_ZTSSt6vectorISt4pairIN3HIR14PatternBinding4TypeEN3MIR6LValueEESaIS6_EE", !44, i64 0}
!44 = !{!"_ZTSSt12_Vector_baseISt4pairIN3HIR14PatternBinding4TypeEN3MIR6LValueEESaIS6_EE", !45, i64 0}
!45 = !{!"_ZTSNSt12_Vector_baseISt4pairIN3HIR14PatternBinding4TypeEN3MIR6LValueEESaIS6_EE12_Vector_implE", !46, i64 0}
!46 = !{!"_ZTSNSt12_Vector_baseISt4pairIN3HIR14PatternBinding4TypeEN3MIR6LValueEESaIS6_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!47 = !{!"_ZTSN3MIR6LValueE", !48, i64 0, !49, i64 8}
!48 = !{!"_ZTSN3MIR6LValue7StorageE", !26, i64 0}
!49 = !{!"_ZTSSt6vectorIN3MIR6LValue7WrapperESaIS2_EE", !50, i64 0}
!50 = !{!"_ZTSSt12_Vector_baseIN3MIR6LValue7WrapperESaIS2_EE", !51, i64 0}
!51 = !{!"_ZTSNSt12_Vector_baseIN3MIR6LValue7WrapperESaIS2_EE12_Vector_implE", !52, i64 0}
!52 = !{!"_ZTSNSt12_Vector_baseIN3MIR6LValue7WrapperESaIS2_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!53 = !{!54, !6, i64 1}
!54 = !{!"_ZTS8SplitArm", !6, i64 0, !6, i64 1, !55, i64 8, !55, i64 56}
!55 = !{!"_ZTSSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE", !56, i64 0}
!56 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKj8VarStateESt10_Select1stIS3_ESt4lessIjESaIS3_EE", !57, i64 0}
!57 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKj8VarStateESt10_Select1stIS3_ESt4lessIjESaIS3_EE13_Rb_tree_implIS7_Lb1EEE", !30, i64 0, !32, i64 8}
!58 = !{!59, !6, i64 0}
!59 = !{!"_ZTSN9ScopeType10Data_SplitE", !6, i64 0, !60, i64 8, !60, i64 104, !61, i64 200}
!60 = !{!"_ZTS8SplitEnd", !55, i64 0, !55, i64 48}
!61 = !{!"_ZTSSt6vectorI8SplitArmSaIS0_EE", !62, i64 0}
!62 = !{!"_ZTSSt12_Vector_baseI8SplitArmSaIS0_EE", !63, i64 0}
!63 = !{!"_ZTSNSt12_Vector_baseI8SplitArmSaIS0_EE12_Vector_implE", !64, i64 0}
!64 = !{!"_ZTSNSt12_Vector_baseI8SplitArmSaIS0_EE17_Vector_impl_dataE", !11, i64 0, !11, i64 8, !11, i64 16}
!65 = !{!12, !12, i64 0}
!66 = !{!67, !11, i64 8}
!67 = !{!"_ZTSZN10MirBuilder13end_split_armERK4SpanRK11ScopeHandlebbE3$_5", !68, i64 0, !11, i64 8}
!68 = !{!"_ZTS4Span", !11, i64 0}
!69 = !{!70, !12, i64 0}
!70 = !{!"_ZTSSt4pairIKj8VarStateE", !12, i64 0, !20, i64 8}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,SROAPass,SimplifyCFGPass,TailCallElimPass