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

; 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.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 }
%"class.std::reverse_iterator" = type { %"class.__gnu_cxx::__normal_iterator" }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%class.TraceLog = type { ptr, %"class.std::function" }
%"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.434 = type { ptr, ptr }
%struct.Span = type { ptr }
%class.anon.435 = type { ptr }
%class.anon.436 = type { ptr, ptr, ptr }
%class.anon.437 = type { i8 }
%class.anon.439 = type { i8 }
%"struct.std::pair.411" = type <{ %"struct.std::_Rb_tree_iterator", i8, [7 x i8] }>
%"struct.std::_Rb_tree_iterator" = type { ptr }
%"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] }
%class.anon.441 = type { i8 }
%class.anon.443 = type { i8 }
%class.anon.445 = type { i8 }
%class.anon.447 = type { ptr }
%class.anon.448 = type { i8 }
%class.anon.450 = type { i8 }
%"class.__gnu_cxx::__normal_iterator.409" = type { ptr }
%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" }
%"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.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.ScopeHandle = type <{ ptr, i32, [4 x i8] }>
%"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.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" }
%"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.SplitEnd = type { %"class.std::map.252", %"class.std::map.252" }
%"struct.ScopeType::Data_Owning" = type { i8, %"class.std::vector.47" }
%"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.SplitArm = type { i8, i8, %"class.std::map.252", %"class.std::map.252" }

@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.44 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [2 x i8], align 1
@__func__._ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_ = external hidden unnamed_addr constant [10 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [24 x i8], align 1
@__PRETTY_FUNCTION__._ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_ = external hidden unnamed_addr constant [75 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [24 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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3MIR6LValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #5 align 2

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 #6

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #7

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) #1 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) #8

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEjET_S7_S7_RKT0_(ptr, ptr, ptr noundef nonnull align 4 dereferenceable(4)) #3

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

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

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

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 #6

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 #6

declare void @__cxa_throw(ptr, ptr, ptr)

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3MIR6LValue9new_LocalEj(ptr dead_on_unwind noalias writable sret(%"struct.MIR::LValue") align 8, i32 noundef) #4 align 2

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIjSaIjEE6rbeginEv(ptr dead_on_unwind noalias writable sret(%"class.std::reverse_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIjSaIjEE4rendEv(ptr dead_on_unwind noalias writable sret(%"class.std::reverse_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

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

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

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

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

; 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 @_ZN8VarStateC2E11InvalidType(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef) unnamed_addr #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN9ScopeType9opt_SplitEv(ptr noundef nonnull align 8 dereferenceable(240)) #1 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 noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorI8VarStateSaIS0_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) #4 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_(ptr noundef nonnull align 8 dereferenceable(440) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(12) %3) #4 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca %class.TraceLog, align 8
  %10 = alloca %"class.std::function", align 8
  %11 = alloca %class.anon.434, align 8
  %12 = alloca ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %15 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %16 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %17 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %18 = alloca %struct.Span, align 8
  %19 = alloca %"class.std::function", align 8
  %20 = alloca %class.anon.435, align 8
  %21 = alloca %struct.Span, align 8
  %22 = alloca %"class.std::function", align 8
  %23 = alloca %class.anon.436, align 8
  %24 = alloca ptr, align 8
  %25 = alloca %struct.Span, align 8
  %26 = alloca %"class.std::function", align 8
  %27 = alloca %class.anon.437, align 1
  %28 = alloca %struct.Span, align 8
  %29 = alloca %"class.std::function", align 8
  %30 = alloca %class.anon.439, align 1
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %34 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %35 = alloca i32, align 4
  %36 = alloca %"struct.MIR::LValue", align 8
  %37 = alloca %"class.std::reverse_iterator", align 8
  %38 = alloca %"class.std::reverse_iterator", align 8
  %39 = alloca %"class.std::reverse_iterator", align 8
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %44 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %45 = alloca i32, align 4
  %46 = alloca %"struct.std::pair.411", align 8
  %47 = alloca %"struct.std::pair.413", align 8
  %48 = alloca %class.VarState, align 8
  %49 = alloca { ptr, i8 }, align 8
  %50 = alloca %struct.Span, align 8
  %51 = alloca %"class.std::function", align 8
  %52 = alloca %class.anon.441, align 1
  %53 = alloca ptr, align 8
  %54 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %55 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %56 = alloca i32, align 4
  %57 = alloca %"struct.std::pair.411", align 8
  %58 = alloca %"struct.std::pair.413", align 8
  %59 = alloca %class.VarState, align 8
  %60 = alloca { ptr, i8 }, align 8
  %61 = alloca %struct.Span, align 8
  %62 = alloca %"class.std::function", align 8
  %63 = alloca %class.anon.443, align 1
  %64 = alloca ptr, align 8
  %65 = alloca ptr, align 8
  %66 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %67 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %68 = alloca i32, align 4
  %69 = alloca %"struct.std::pair.411", align 8
  %70 = alloca %"struct.std::pair.413", align 8
  %71 = alloca %class.VarState, align 8
  %72 = alloca { ptr, i8 }, align 8
  %73 = alloca %struct.Span, align 8
  %74 = alloca %"class.std::function", align 8
  %75 = alloca %class.anon.445, align 1
  %76 = alloca ptr, align 8
  %77 = alloca ptr, align 8
  %78 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %79 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %80 = alloca i32, align 4
  %81 = alloca %"struct.std::pair.413", align 8
  %82 = alloca %"struct.std::pair.411", align 8
  %83 = alloca %class.VarState, align 8
  %84 = alloca %"class.std::reverse_iterator", align 8
  %85 = alloca %struct.Span, align 8
  %86 = alloca %"class.std::function", align 8
  %87 = alloca %class.anon.447, align 8
  %88 = alloca ptr, align 8
  %89 = alloca %struct.Span, align 8
  %90 = alloca %"class.std::function", align 8
  %91 = alloca %class.anon.448, align 1
  %92 = alloca %struct.Span, align 8
  %93 = alloca %"class.std::function", align 8
  %94 = alloca %class.anon.450, align 1
  %95 = alloca ptr, align 8
  %96 = alloca %"class.__gnu_cxx::__normal_iterator.409", align 8
  %97 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %98 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %99 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %100 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  store ptr %3, ptr %8, align 8, !tbaa !5
  %101 = load ptr, ptr %5, align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr %9) #9
  %102 = call noundef zeroext i1 @_Z13debug_enabledv()
  %103 = zext i1 %102 to i64
  %104 = select i1 %102, ptr @__func__._ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_, ptr null
  call void @llvm.lifetime.start.p0(i64 16, ptr %11) #9
  %105 = getelementptr inbounds %class.anon.434, ptr %11, i32 0, i32 0
  store ptr %2, ptr %105, align 8, !tbaa !5
  %106 = getelementptr inbounds %class.anon.434, ptr %11, i32 0, i32 1
  %107 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %107, ptr %106, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(16) %11) #9
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40) %9, ptr noundef %104, ptr noundef %10)
          to label %108 unwind label %137

108:                                              ; preds = %4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #9
  %109 = getelementptr inbounds %class.MirBuilder, ptr %101, i32 0, i32 17
  %110 = call noundef zeroext i1 @_ZNKSt6vectorIjSaIjEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %109) #9
  br i1 %110, label %118, label %111

111:                                              ; preds = %108
  %112 = getelementptr inbounds %class.MirBuilder, ptr %101, i32 0, i32 17
  %113 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %112) #9
  %114 = load i32, ptr %113, align 4, !tbaa !9
  %115 = getelementptr inbounds %class.ScopeHandle, ptr %2, i32 0, i32 1
  %116 = load i32, ptr %115, align 8, !tbaa !11
  %117 = icmp ne i32 %114, %116
  br i1 %117, label %118, label %225

118:                                              ; preds = %111, %108
  br label %119

119:                                              ; preds = %118
  %120 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %121 unwind label %141

121:                                              ; preds = %119
  br i1 %120, label %122, label %145

122:                                              ; preds = %121
  %123 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %124 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %123, ptr noundef @__func__._ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_)
          to label %125 unwind label %141

125:                                              ; preds = %122
  %126 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %124, ptr noundef @.str.44)
          to label %127 unwind label %141

127:                                              ; preds = %125
  %128 = getelementptr inbounds %class.MirBuilder, ptr %101, i32 0, i32 17
  %129 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIjERSoS0_RKSt6vectorIT_SaIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %126, ptr noundef nonnull align 8 dereferenceable(24) %128)
          to label %130 unwind label %141

130:                                              ; preds = %127
  %131 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %129, ptr noundef @.str.45)
          to label %132 unwind label %141

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

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

136:                                              ; preds = %134
  br label %145

137:                                              ; preds = %4
  %138 = landingpad { ptr, i32 }
          cleanup
  %139 = extractvalue { ptr, i32 } %138, 0
  store ptr %139, ptr %12, align 8
  %140 = extractvalue { ptr, i32 } %138, 1
  store i32 %140, ptr %13, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #9
  br label %923

141:                                              ; preds = %134, %132, %130, %127, %125, %122, %119
  %142 = landingpad { ptr, i32 }
          cleanup
  %143 = extractvalue { ptr, i32 } %142, 0
  store ptr %143, ptr %12, align 8
  %144 = extractvalue { ptr, i32 } %142, 1
  store i32 %144, ptr %13, align 4
  br label %922

145:                                              ; preds = %136, %121
  br label %146

146:                                              ; preds = %145
  br label %147

147:                                              ; preds = %146
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  %148 = getelementptr inbounds %class.MirBuilder, ptr %101, i32 0, i32 17
  %149 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %148) #9
  %150 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %15, i32 0, i32 0
  store ptr %149, ptr %150, align 8
  %151 = getelementptr inbounds %class.MirBuilder, ptr %101, i32 0, i32 17
  %152 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %151) #9
  %153 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %16, i32 0, i32 0
  store ptr %152, ptr %153, align 8
  %154 = getelementptr inbounds %class.ScopeHandle, ptr %2, i32 0, i32 1
  %155 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %15, i32 0, i32 0
  %156 = load ptr, ptr %155, align 8
  %157 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %16, i32 0, i32 0
  %158 = load ptr, ptr %157, align 8
  %159 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEjET_S7_S7_RKT0_(ptr %156, ptr %158, ptr noundef nonnull align 4 dereferenceable(4) %154)
          to label %160 unwind label %174

160:                                              ; preds = %147
  %161 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %14, i32 0, i32 0
  store ptr %159, ptr %161, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #9
  %162 = getelementptr inbounds %class.MirBuilder, ptr %101, i32 0, i32 17
  %163 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %162) #9
  %164 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %17, i32 0, i32 0
  store ptr %163, ptr %164, align 8
  %165 = call noundef zeroext i1 @_ZN9__gnu_cxxeqIPjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %17) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #9
  br i1 %165, label %166, label %193

166:                                              ; preds = %160
  br label %167

167:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #9
  %168 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %168)
          to label %169 unwind label %178

169:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #9
  %170 = getelementptr inbounds %class.anon.435, ptr %20, i32 0, i32 0
  store ptr %2, ptr %170, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(8) %20) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef %19)
          to label %171 unwind label %182

171:                                              ; preds = %169
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  %172 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %172, ptr noundef @.str.9)
          to label %173 unwind label %187

173:                                              ; preds = %171
  invoke void @__cxa_throw(ptr %172, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #10
          to label %929 unwind label %174

174:                                              ; preds = %203, %173, %147
  %175 = landingpad { ptr, i32 }
          cleanup
  %176 = extractvalue { ptr, i32 } %175, 0
  store ptr %176, ptr %12, align 8
  %177 = extractvalue { ptr, i32 } %175, 1
  store i32 %177, ptr %13, align 4
  br label %224

178:                                              ; preds = %167
  %179 = landingpad { ptr, i32 }
          cleanup
  %180 = extractvalue { ptr, i32 } %179, 0
  store ptr %180, ptr %12, align 8
  %181 = extractvalue { ptr, i32 } %179, 1
  store i32 %181, ptr %13, align 4
  br label %186

182:                                              ; preds = %169
  %183 = landingpad { ptr, i32 }
          cleanup
  %184 = extractvalue { ptr, i32 } %183, 0
  store ptr %184, ptr %12, align 8
  %185 = extractvalue { ptr, i32 } %183, 1
  store i32 %185, ptr %13, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %18) #9
  br label %186

186:                                              ; preds = %182, %178
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  br label %224

187:                                              ; preds = %171
  %188 = landingpad { ptr, i32 }
          cleanup
  %189 = extractvalue { ptr, i32 } %188, 0
  store ptr %189, ptr %12, align 8
  %190 = extractvalue { ptr, i32 } %188, 1
  store i32 %190, ptr %13, align 4
  call void @__cxa_free_exception(ptr %172) #9
  br label %224

191:                                              ; No predecessors!
  br label %192

192:                                              ; preds = %191
  br label %193

193:                                              ; preds = %192, %160
  br label %194

194:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #9
  %195 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef nonnull align 8 dereferenceable(8) %195)
          to label %196 unwind label %204

196:                                              ; preds = %194
  call void @llvm.lifetime.start.p0(i64 24, ptr %23) #9
  %197 = getelementptr inbounds %class.anon.436, ptr %23, i32 0, i32 0
  store ptr %2, ptr %197, align 8, !tbaa !5
  %198 = getelementptr inbounds %class.anon.436, ptr %23, i32 0, i32 1
  store ptr %101, ptr %198, align 8, !tbaa !13
  %199 = getelementptr inbounds %class.anon.436, ptr %23, i32 0, i32 2
  store ptr %14, ptr %199, align 8, !tbaa !5
  invoke void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(24) %23)
          to label %200 unwind label %208

200:                                              ; preds = %196
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %21, ptr noundef %22)
          to label %201 unwind label %212

201:                                              ; preds = %200
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  %202 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %202, ptr noundef @.str.9)
          to label %203 unwind label %218

203:                                              ; preds = %201
  invoke void @__cxa_throw(ptr %202, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #10
          to label %929 unwind label %174

204:                                              ; preds = %194
  %205 = landingpad { ptr, i32 }
          cleanup
  %206 = extractvalue { ptr, i32 } %205, 0
  store ptr %206, ptr %12, align 8
  %207 = extractvalue { ptr, i32 } %205, 1
  store i32 %207, ptr %13, align 4
  br label %217

208:                                              ; preds = %196
  %209 = landingpad { ptr, i32 }
          cleanup
  %210 = extractvalue { ptr, i32 } %209, 0
  store ptr %210, ptr %12, align 8
  %211 = extractvalue { ptr, i32 } %209, 1
  store i32 %211, ptr %13, align 4
  br label %216

212:                                              ; preds = %200
  %213 = landingpad { ptr, i32 }
          cleanup
  %214 = extractvalue { ptr, i32 } %213, 0
  store ptr %214, ptr %12, align 8
  %215 = extractvalue { ptr, i32 } %213, 1
  store i32 %215, ptr %13, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #9
  br label %216

216:                                              ; preds = %212, %208
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %21) #9
  br label %217

217:                                              ; preds = %216, %204
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  br label %224

218:                                              ; preds = %201
  %219 = landingpad { ptr, i32 }
          cleanup
  %220 = extractvalue { ptr, i32 } %219, 0
  store ptr %220, ptr %12, align 8
  %221 = extractvalue { ptr, i32 } %219, 1
  store i32 %221, ptr %13, align 4
  call void @__cxa_free_exception(ptr %202) #9
  br label %224

222:                                              ; No predecessors!
  br label %223

223:                                              ; preds = %222
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  br label %225

224:                                              ; preds = %218, %217, %187, %186, %174
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  br label %922

225:                                              ; preds = %223, %111
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #9
  %226 = getelementptr inbounds %class.MirBuilder, ptr %101, i32 0, i32 16
  %227 = getelementptr inbounds %class.ScopeHandle, ptr %2, i32 0, i32 1
  %228 = load i32, ptr %227, align 8, !tbaa !11
  %229 = zext i32 %228 to i64
  %230 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZNSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %226, i64 noundef %229)
          to label %231 unwind label %243

231:                                              ; preds = %225
  store ptr %230, ptr %24, align 8, !tbaa !5
  br label %232

232:                                              ; preds = %231
  %233 = load ptr, ptr %24, align 8, !tbaa !5
  %234 = getelementptr inbounds %"struct.MirBuilder::ScopeDef", ptr %233, i32 0, i32 2
  %235 = invoke noundef zeroext i1 @_ZNK9ScopeType9is_OwningEv(ptr noundef nonnull align 8 dereferenceable(240) %234)
          to label %236 unwind label %243

236:                                              ; preds = %232
  br i1 %235, label %260, label %237

237:                                              ; preds = %236
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  %238 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %238)
          to label %239 unwind label %247

239:                                              ; preds = %237
  call void @llvm.lifetime.start.p0(i64 1, ptr %27) #9
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 1 dereferenceable(1) %27) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef %26)
          to label %240 unwind label %251

240:                                              ; preds = %239
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  %241 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %241, ptr noundef @.str.9)
          to label %242 unwind label %256

242:                                              ; preds = %240
  invoke void @__cxa_throw(ptr %241, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #10
          to label %929 unwind label %243

243:                                              ; preds = %276, %263, %242, %232, %225
  %244 = landingpad { ptr, i32 }
          cleanup
  %245 = extractvalue { ptr, i32 } %244, 0
  store ptr %245, ptr %12, align 8
  %246 = extractvalue { ptr, i32 } %244, 1
  store i32 %246, ptr %13, align 4
  br label %921

247:                                              ; preds = %237
  %248 = landingpad { ptr, i32 }
          cleanup
  %249 = extractvalue { ptr, i32 } %248, 0
  store ptr %249, ptr %12, align 8
  %250 = extractvalue { ptr, i32 } %248, 1
  store i32 %250, ptr %13, align 4
  br label %255

251:                                              ; preds = %239
  %252 = landingpad { ptr, i32 }
          cleanup
  %253 = extractvalue { ptr, i32 } %252, 0
  store ptr %253, ptr %12, align 8
  %254 = extractvalue { ptr, i32 } %252, 1
  store i32 %254, ptr %13, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %27) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #9
  br label %255

255:                                              ; preds = %251, %247
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  br label %921

256:                                              ; preds = %240
  %257 = landingpad { ptr, i32 }
          cleanup
  %258 = extractvalue { ptr, i32 } %257, 0
  store ptr %258, ptr %12, align 8
  %259 = extractvalue { ptr, i32 } %257, 1
  store i32 %259, ptr %13, align 4
  call void @__cxa_free_exception(ptr %241) #9
  br label %921

260:                                              ; preds = %236
  br label %261

261:                                              ; preds = %260
  br label %262

262:                                              ; preds = %261
  br label %263

263:                                              ; preds = %262
  %264 = load ptr, ptr %24, align 8, !tbaa !5
  %265 = getelementptr inbounds %"struct.MirBuilder::ScopeDef", ptr %264, i32 0, i32 2
  %266 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN9ScopeType9as_OwningEv(ptr noundef nonnull align 8 dereferenceable(240) %265)
          to label %267 unwind label %243

267:                                              ; preds = %263
  %268 = getelementptr inbounds %"struct.ScopeType::Data_Owning", ptr %266, i32 0, i32 0
  %269 = load i8, ptr %268, align 8, !tbaa !15, !range !22, !noundef !23
  %270 = trunc i8 %269 to i1
  br i1 %270, label %290, label %271

271:                                              ; preds = %267
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #9
  %272 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %272)
          to label %273 unwind label %277

273:                                              ; preds = %271
  call void @llvm.lifetime.start.p0(i64 1, ptr %30) #9
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef nonnull align 1 dereferenceable(1) %30) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef %29)
          to label %274 unwind label %281

274:                                              ; preds = %273
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  %275 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %275, ptr noundef @.str.9)
          to label %276 unwind label %286

276:                                              ; preds = %274
  invoke void @__cxa_throw(ptr %275, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #10
          to label %929 unwind label %243

277:                                              ; preds = %271
  %278 = landingpad { ptr, i32 }
          cleanup
  %279 = extractvalue { ptr, i32 } %278, 0
  store ptr %279, ptr %12, align 8
  %280 = extractvalue { ptr, i32 } %278, 1
  store i32 %280, ptr %13, align 4
  br label %285

281:                                              ; preds = %273
  %282 = landingpad { ptr, i32 }
          cleanup
  %283 = extractvalue { ptr, i32 } %282, 0
  store ptr %283, ptr %12, align 8
  %284 = extractvalue { ptr, i32 } %282, 1
  store i32 %284, ptr %13, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %30) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %28) #9
  br label %285

285:                                              ; preds = %281, %277
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  br label %921

286:                                              ; preds = %274
  %287 = landingpad { ptr, i32 }
          cleanup
  %288 = extractvalue { ptr, i32 } %287, 0
  store ptr %288, ptr %12, align 8
  %289 = extractvalue { ptr, i32 } %287, 1
  store i32 %289, ptr %13, align 4
  call void @__cxa_free_exception(ptr %275) #9
  br label %921

290:                                              ; preds = %267
  br label %291

291:                                              ; preds = %290
  br label %292

292:                                              ; preds = %291
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  %293 = load ptr, ptr %24, align 8, !tbaa !5
  %294 = getelementptr inbounds %"struct.MirBuilder::ScopeDef", ptr %293, i32 0, i32 2
  %295 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN9ScopeType9as_OwningEv(ptr noundef nonnull align 8 dereferenceable(240) %294)
          to label %296 unwind label %308

296:                                              ; preds = %292
  %297 = getelementptr inbounds %"struct.ScopeType::Data_Owning", ptr %295, i32 0, i32 1
  store ptr %297, ptr %31, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #9
  %298 = load ptr, ptr %31, align 8, !tbaa !5
  store ptr %298, ptr %32, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #9
  %299 = load ptr, ptr %32, align 8, !tbaa !5
  %300 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %299) #9
  %301 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %33, i32 0, i32 0
  store ptr %300, ptr %301, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #9
  %302 = load ptr, ptr %32, align 8, !tbaa !5
  %303 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %302) #9
  %304 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %34, i32 0, i32 0
  store ptr %303, ptr %304, align 8
  br label %305

305:                                              ; preds = %357, %296
  %306 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %34) #9
  br i1 %306, label %312, label %307

307:                                              ; preds = %305
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  br label %360

308:                                              ; preds = %292
  %309 = landingpad { ptr, i32 }
          cleanup
  %310 = extractvalue { ptr, i32 } %309, 0
  store ptr %310, ptr %12, align 8
  %311 = extractvalue { ptr, i32 } %309, 1
  store i32 %311, ptr %13, align 4
  br label %920

312:                                              ; preds = %305
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  %313 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #9
  %314 = load i32, ptr %313, align 4, !tbaa !9
  store i32 %314, ptr %35, align 4, !tbaa !9
  br label %315

315:                                              ; preds = %312
  %316 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %317 unwind label %332

317:                                              ; preds = %315
  br i1 %316, label %318, label %345

318:                                              ; preds = %317
  %319 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %320 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %319, ptr noundef @__func__._ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_)
          to label %321 unwind label %332

321:                                              ; preds = %318
  %322 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %320, ptr noundef @.str.46)
          to label %323 unwind label %332

323:                                              ; preds = %321
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #9
  %324 = load i32, ptr %35, align 4, !tbaa !9
  invoke void @_ZN3MIR6LValue9new_LocalEj(ptr dead_on_unwind writable sret(%"struct.MIR::LValue") align 8 %36, i32 noundef %324)
          to label %325 unwind label %336

325:                                              ; preds = %323
  %326 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8) %322, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %327 unwind label %340

327:                                              ; preds = %325
  %328 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %326, ptr noundef @_ZSt3decRSt8ios_base)
          to label %329 unwind label %340

329:                                              ; preds = %327
  %330 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %328, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %331 unwind label %340

331:                                              ; preds = %329
  call void @_ZN3MIR6LValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #9
  br label %345

332:                                              ; preds = %321, %318, %315
  %333 = landingpad { ptr, i32 }
          cleanup
  %334 = extractvalue { ptr, i32 } %333, 0
  store ptr %334, ptr %12, align 8
  %335 = extractvalue { ptr, i32 } %333, 1
  store i32 %335, ptr %13, align 4
  br label %359

336:                                              ; preds = %323
  %337 = landingpad { ptr, i32 }
          cleanup
  %338 = extractvalue { ptr, i32 } %337, 0
  store ptr %338, ptr %12, align 8
  %339 = extractvalue { ptr, i32 } %337, 1
  store i32 %339, ptr %13, align 4
  br label %344

340:                                              ; preds = %329, %327, %325
  %341 = landingpad { ptr, i32 }
          cleanup
  %342 = extractvalue { ptr, i32 } %341, 0
  store ptr %342, ptr %12, align 8
  %343 = extractvalue { ptr, i32 } %341, 1
  store i32 %343, ptr %13, align 4
  call void @_ZN3MIR6LValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #9
  br label %344

344:                                              ; preds = %340, %336
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #9
  br label %359

345:                                              ; preds = %331, %317
  br label %346

346:                                              ; preds = %345
  br label %347

347:                                              ; preds = %346
  %348 = load i32, ptr %35, align 4, !tbaa !9
  %349 = zext i32 %348 to i64
  %350 = getelementptr inbounds %class.MirBuilder, ptr %101, i32 0, i32 14
  %351 = load i64, ptr %350, align 8, !tbaa !24
  %352 = icmp uge i64 %349, %351
  br i1 %352, label %353, label %354

353:                                              ; preds = %347
  br label %356

354:                                              ; preds = %347
  call void @__assert_fail(ptr noundef @.str.47, ptr noundef @.str.7, i32 noundef 835, ptr noundef @__PRETTY_FUNCTION__._ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_) #11
  unreachable

355:                                              ; No predecessors!
  br label %356

356:                                              ; preds = %355, %353
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  br label %357

357:                                              ; preds = %356
  %358 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %33) #9
  br label %305

359:                                              ; preds = %344, %332
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #9
  br label %920

360:                                              ; preds = %307
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %38) #9
  %361 = getelementptr inbounds %class.MirBuilder, ptr %101, i32 0, i32 17
  call void @_ZNSt6vectorIjSaIjEE6rbeginEv(ptr dead_on_unwind writable sret(%"class.std::reverse_iterator") align 8 %38, ptr noundef nonnull align 8 dereferenceable(24) %361) #9
  invoke void @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEplEl(ptr dead_on_unwind writable sret(%"class.std::reverse_iterator") align 8 %37, ptr noundef nonnull align 8 dereferenceable(8) %38, i64 noundef 1)
          to label %362 unwind label %410

362:                                              ; preds = %360
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #9
  br label %363

363:                                              ; preds = %774, %362
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #9
  %364 = getelementptr inbounds %class.MirBuilder, ptr %101, i32 0, i32 17
  call void @_ZNSt6vectorIjSaIjEE4rendEv(ptr dead_on_unwind writable sret(%"class.std::reverse_iterator") align 8 %39, ptr noundef nonnull align 8 dereferenceable(24) %364) #9
  %365 = invoke noundef zeroext i1 @_ZStneIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEbRKSt16reverse_iteratorIT_ESB_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %39)
          to label %366 unwind label %414

366:                                              ; preds = %363
  br i1 %365, label %367, label %375

367:                                              ; preds = %366
  %368 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %369 unwind label %414

369:                                              ; preds = %367
  %370 = load i32, ptr %368, align 4, !tbaa !9
  %371 = load ptr, ptr %8, align 8, !tbaa !5
  %372 = getelementptr inbounds %class.ScopeHandle, ptr %371, i32 0, i32 1
  %373 = load i32, ptr %372, align 8, !tbaa !11
  %374 = icmp ne i32 %370, %373
  br label %375

375:                                              ; preds = %369, %366
  %376 = phi i1 [ false, %366 ], [ %374, %369 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  br i1 %376, label %377, label %781

377:                                              ; preds = %375
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #9
  %378 = getelementptr inbounds %class.MirBuilder, ptr %101, i32 0, i32 16
  %379 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %380 unwind label %418

380:                                              ; preds = %377
  %381 = load i32, ptr %379, align 4, !tbaa !9
  %382 = zext i32 %381 to i64
  %383 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZNSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %378, i64 noundef %382)
          to label %384 unwind label %418

384:                                              ; preds = %380
  store ptr %383, ptr %40, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #9
  %385 = load ptr, ptr %40, align 8, !tbaa !5
  %386 = getelementptr inbounds %"struct.MirBuilder::ScopeDef", ptr %385, i32 0, i32 2
  %387 = invoke noundef ptr @_ZN9ScopeType8opt_LoopEv(ptr noundef nonnull align 8 dereferenceable(240) %386)
          to label %388 unwind label %422

388:                                              ; preds = %384
  store ptr %387, ptr %41, align 8, !tbaa !5
  %389 = load ptr, ptr %41, align 8, !tbaa !5
  %390 = icmp ne ptr %389, null
  br i1 %390, label %391, label %582

391:                                              ; preds = %388
  %392 = load ptr, ptr %41, align 8, !tbaa !5
  %393 = getelementptr inbounds %"struct.ScopeType::Data_Loop", ptr %392, i32 0, i32 2
  %394 = load i8, ptr %393, align 8, !tbaa !57, !range !22, !noundef !23
  %395 = trunc i8 %394 to i1
  br i1 %395, label %396, label %497

396:                                              ; preds = %391
  br label %397

397:                                              ; preds = %396
  %398 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %399 unwind label %422

399:                                              ; preds = %397
  br i1 %398, label %400, label %426

400:                                              ; preds = %399
  %401 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %402 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %401, ptr noundef @__func__._ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_)
          to label %403 unwind label %422

403:                                              ; preds = %400
  %404 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %402, ptr noundef @.str.48)
          to label %405 unwind label %422

405:                                              ; preds = %403
  %406 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %404, ptr noundef @_ZSt3decRSt8ios_base)
          to label %407 unwind label %422

407:                                              ; preds = %405
  %408 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %406, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %409 unwind label %422

409:                                              ; preds = %407
  br label %426

410:                                              ; preds = %360
  %411 = landingpad { ptr, i32 }
          cleanup
  %412 = extractvalue { ptr, i32 } %411, 0
  store ptr %412, ptr %12, align 8
  %413 = extractvalue { ptr, i32 } %411, 1
  store i32 %413, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %38) #9
  br label %919

414:                                              ; preds = %367, %363
  %415 = landingpad { ptr, i32 }
          cleanup
  %416 = extractvalue { ptr, i32 } %415, 0
  store ptr %416, ptr %12, align 8
  %417 = extractvalue { ptr, i32 } %415, 1
  store i32 %417, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  br label %919

418:                                              ; preds = %380, %377
  %419 = landingpad { ptr, i32 }
          cleanup
  %420 = extractvalue { ptr, i32 } %419, 0
  store ptr %420, ptr %12, align 8
  %421 = extractvalue { ptr, i32 } %419, 1
  store i32 %421, ptr %13, align 4
  br label %776

422:                                              ; preds = %508, %506, %504, %501, %498, %407, %405, %403, %400, %397, %384
  %423 = landingpad { ptr, i32 }
          cleanup
  %424 = extractvalue { ptr, i32 } %423, 0
  store ptr %424, ptr %12, align 8
  %425 = extractvalue { ptr, i32 } %423, 1
  store i32 %425, ptr %13, align 4
  br label %775

426:                                              ; preds = %409, %399
  br label %427

427:                                              ; preds = %426
  br label %428

428:                                              ; preds = %427
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #9
  %429 = load ptr, ptr %31, align 8, !tbaa !5
  store ptr %429, ptr %42, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #9
  %430 = load ptr, ptr %42, align 8, !tbaa !5
  %431 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %430) #9
  %432 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %43, i32 0, i32 0
  store ptr %431, ptr %432, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #9
  %433 = load ptr, ptr %42, align 8, !tbaa !5
  %434 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %433) #9
  %435 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %44, i32 0, i32 0
  store ptr %434, ptr %435, align 8
  br label %436

436:                                              ; preds = %493, %428
  %437 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %44) #9
  br i1 %437, label %439, label %438

438:                                              ; preds = %436
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  br label %496

439:                                              ; preds = %436
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  %440 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %43) #9
  %441 = load i32, ptr %440, align 4, !tbaa !9
  store i32 %441, ptr %45, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %46) #9
  %442 = load ptr, ptr %41, align 8, !tbaa !5
  %443 = getelementptr inbounds %"struct.ScopeType::Data_Loop", ptr %442, i32 0, i32 3
  %444 = getelementptr inbounds %struct.SplitEnd, ptr %443, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 48, ptr %47) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr %48) #9
  invoke void @_ZN8VarStateC2E11InvalidType(ptr noundef nonnull align 8 dereferenceable(40) %48, i32 noundef 0)
          to label %445 unwind label %459

445:                                              ; preds = %439
  invoke void @_ZSt9make_pairIRj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind writable sret(%"struct.std::pair.413") align 8 %47, ptr noundef nonnull align 4 dereferenceable(4) %45, ptr noundef nonnull align 8 dereferenceable(40) %48)
          to label %446 unwind label %463

446:                                              ; preds = %445
  %447 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %444, ptr noundef nonnull align 8 dereferenceable(48) %47)
          to label %448 unwind label %467

448:                                              ; preds = %446
  store { ptr, i8 } %447, ptr %49, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %46, ptr align 8 %49, i64 9, i1 false)
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %47) #9
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %48) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %47) #9
  br label %449

449:                                              ; preds = %448
  %450 = getelementptr inbounds %"struct.std::pair.411", ptr %46, i32 0, i32 1
  %451 = load i8, ptr %450, align 8, !tbaa !63, !range !22, !noundef !23
  %452 = trunc i8 %451 to i1
  br i1 %452, label %490, label %453

453:                                              ; preds = %449
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  %454 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(8) %454)
          to label %455 unwind label %473

455:                                              ; preds = %453
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #9
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull align 1 dereferenceable(1) %52) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef %51)
          to label %456 unwind label %477

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

458:                                              ; preds = %456
  invoke void @__cxa_throw(ptr %457, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #10
          to label %929 unwind label %486

459:                                              ; preds = %439
  %460 = landingpad { ptr, i32 }
          cleanup
  %461 = extractvalue { ptr, i32 } %460, 0
  store ptr %461, ptr %12, align 8
  %462 = extractvalue { ptr, i32 } %460, 1
  store i32 %462, ptr %13, align 4
  br label %472

463:                                              ; preds = %445
  %464 = landingpad { ptr, i32 }
          cleanup
  %465 = extractvalue { ptr, i32 } %464, 0
  store ptr %465, ptr %12, align 8
  %466 = extractvalue { ptr, i32 } %464, 1
  store i32 %466, ptr %13, align 4
  br label %471

467:                                              ; preds = %446
  %468 = landingpad { ptr, i32 }
          cleanup
  %469 = extractvalue { ptr, i32 } %468, 0
  store ptr %469, ptr %12, align 8
  %470 = extractvalue { ptr, i32 } %468, 1
  store i32 %470, ptr %13, align 4
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %47) #9
  br label %471

471:                                              ; preds = %467, %463
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %48) #9
  br label %472

472:                                              ; preds = %471, %459
  call void @llvm.lifetime.end.p0(i64 40, ptr %48) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %47) #9
  br label %495

473:                                              ; preds = %453
  %474 = landingpad { ptr, i32 }
          cleanup
  %475 = extractvalue { ptr, i32 } %474, 0
  store ptr %475, ptr %12, align 8
  %476 = extractvalue { ptr, i32 } %474, 1
  store i32 %476, ptr %13, align 4
  br label %481

477:                                              ; preds = %455
  %478 = landingpad { ptr, i32 }
          cleanup
  %479 = extractvalue { ptr, i32 } %478, 0
  store ptr %479, ptr %12, align 8
  %480 = extractvalue { ptr, i32 } %478, 1
  store i32 %480, ptr %13, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %50) #9
  br label %481

481:                                              ; preds = %477, %473
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  br label %495

482:                                              ; preds = %456
  %483 = landingpad { ptr, i32 }
          cleanup
  %484 = extractvalue { ptr, i32 } %483, 0
  store ptr %484, ptr %12, align 8
  %485 = extractvalue { ptr, i32 } %483, 1
  store i32 %485, ptr %13, align 4
  call void @__cxa_free_exception(ptr %457) #9
  br label %495

486:                                              ; preds = %458
  %487 = landingpad { ptr, i32 }
          cleanup
  %488 = extractvalue { ptr, i32 } %487, 0
  store ptr %488, ptr %12, align 8
  %489 = extractvalue { ptr, i32 } %487, 1
  store i32 %489, ptr %13, align 4
  br label %495

490:                                              ; preds = %449
  br label %491

491:                                              ; preds = %490
  br label %492

492:                                              ; preds = %491
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %493

493:                                              ; preds = %492
  %494 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %43) #9
  br label %436

495:                                              ; preds = %486, %482, %481, %472
  call void @llvm.lifetime.end.p0(i64 16, ptr %46) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  br label %775

496:                                              ; preds = %438
  br label %514

497:                                              ; preds = %391
  br label %498

498:                                              ; preds = %497
  %499 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %500 unwind label %422

500:                                              ; preds = %498
  br i1 %499, label %501, label %511

501:                                              ; preds = %500
  %502 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %503 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %502, ptr noundef @__func__._ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_)
          to label %504 unwind label %422

504:                                              ; preds = %501
  %505 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %503, ptr noundef @.str.49)
          to label %506 unwind label %422

506:                                              ; preds = %504
  %507 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %505, ptr noundef @_ZSt3decRSt8ios_base)
          to label %508 unwind label %422

508:                                              ; preds = %506
  %509 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %507, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %510 unwind label %422

510:                                              ; preds = %508
  br label %511

511:                                              ; preds = %510, %500
  br label %512

512:                                              ; preds = %511
  br label %513

513:                                              ; preds = %512
  br label %514

514:                                              ; preds = %513, %496
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #9
  %515 = load ptr, ptr %31, align 8, !tbaa !5
  store ptr %515, ptr %53, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #9
  %516 = load ptr, ptr %53, align 8, !tbaa !5
  %517 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %516) #9
  %518 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %54, i32 0, i32 0
  store ptr %517, ptr %518, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #9
  %519 = load ptr, ptr %53, align 8, !tbaa !5
  %520 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %519) #9
  %521 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %55, i32 0, i32 0
  store ptr %520, ptr %521, align 8
  br label %522

522:                                              ; preds = %578, %514
  %523 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef nonnull align 8 dereferenceable(8) %55) #9
  br i1 %523, label %525, label %524

524:                                              ; preds = %522
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  br label %581

525:                                              ; preds = %522
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #9
  %526 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %54) #9
  %527 = load i32, ptr %526, align 4, !tbaa !9
  store i32 %527, ptr %56, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %57) #9
  %528 = load ptr, ptr %41, align 8, !tbaa !5
  %529 = getelementptr inbounds %"struct.ScopeType::Data_Loop", ptr %528, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 48, ptr %58) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr %59) #9
  invoke void @_ZN8VarStateC2E11InvalidType(ptr noundef nonnull align 8 dereferenceable(40) %59, i32 noundef 0)
          to label %530 unwind label %544

530:                                              ; preds = %525
  invoke void @_ZSt9make_pairIRj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind writable sret(%"struct.std::pair.413") align 8 %58, ptr noundef nonnull align 4 dereferenceable(4) %56, ptr noundef nonnull align 8 dereferenceable(40) %59)
          to label %531 unwind label %548

531:                                              ; preds = %530
  %532 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %529, ptr noundef nonnull align 8 dereferenceable(48) %58)
          to label %533 unwind label %552

533:                                              ; preds = %531
  store { ptr, i8 } %532, ptr %60, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %57, ptr align 8 %60, i64 9, i1 false)
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %58) #9
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %59) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %58) #9
  br label %534

534:                                              ; preds = %533
  %535 = getelementptr inbounds %"struct.std::pair.411", ptr %57, i32 0, i32 1
  %536 = load i8, ptr %535, align 8, !tbaa !63, !range !22, !noundef !23
  %537 = trunc i8 %536 to i1
  br i1 %537, label %575, label %538

538:                                              ; preds = %534
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #9
  %539 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(8) %539)
          to label %540 unwind label %558

540:                                              ; preds = %538
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #9
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 1 dereferenceable(1) %63) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef %62)
          to label %541 unwind label %562

541:                                              ; preds = %540
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #9
  %542 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %542, ptr noundef @.str.9)
          to label %543 unwind label %567

543:                                              ; preds = %541
  invoke void @__cxa_throw(ptr %542, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #10
          to label %929 unwind label %571

544:                                              ; preds = %525
  %545 = landingpad { ptr, i32 }
          cleanup
  %546 = extractvalue { ptr, i32 } %545, 0
  store ptr %546, ptr %12, align 8
  %547 = extractvalue { ptr, i32 } %545, 1
  store i32 %547, ptr %13, align 4
  br label %557

548:                                              ; preds = %530
  %549 = landingpad { ptr, i32 }
          cleanup
  %550 = extractvalue { ptr, i32 } %549, 0
  store ptr %550, ptr %12, align 8
  %551 = extractvalue { ptr, i32 } %549, 1
  store i32 %551, ptr %13, align 4
  br label %556

552:                                              ; preds = %531
  %553 = landingpad { ptr, i32 }
          cleanup
  %554 = extractvalue { ptr, i32 } %553, 0
  store ptr %554, ptr %12, align 8
  %555 = extractvalue { ptr, i32 } %553, 1
  store i32 %555, ptr %13, align 4
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %58) #9
  br label %556

556:                                              ; preds = %552, %548
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %59) #9
  br label %557

557:                                              ; preds = %556, %544
  call void @llvm.lifetime.end.p0(i64 40, ptr %59) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %58) #9
  br label %580

558:                                              ; preds = %538
  %559 = landingpad { ptr, i32 }
          cleanup
  %560 = extractvalue { ptr, i32 } %559, 0
  store ptr %560, ptr %12, align 8
  %561 = extractvalue { ptr, i32 } %559, 1
  store i32 %561, ptr %13, align 4
  br label %566

562:                                              ; preds = %540
  %563 = landingpad { ptr, i32 }
          cleanup
  %564 = extractvalue { ptr, i32 } %563, 0
  store ptr %564, ptr %12, align 8
  %565 = extractvalue { ptr, i32 } %563, 1
  store i32 %565, ptr %13, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #9
  br label %566

566:                                              ; preds = %562, %558
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #9
  br label %580

567:                                              ; preds = %541
  %568 = landingpad { ptr, i32 }
          cleanup
  %569 = extractvalue { ptr, i32 } %568, 0
  store ptr %569, ptr %12, align 8
  %570 = extractvalue { ptr, i32 } %568, 1
  store i32 %570, ptr %13, align 4
  call void @__cxa_free_exception(ptr %542) #9
  br label %580

571:                                              ; preds = %543
  %572 = landingpad { ptr, i32 }
          cleanup
  %573 = extractvalue { ptr, i32 } %572, 0
  store ptr %573, ptr %12, align 8
  %574 = extractvalue { ptr, i32 } %572, 1
  store i32 %574, ptr %13, align 4
  br label %580

575:                                              ; preds = %534
  br label %576

576:                                              ; preds = %575
  br label %577

577:                                              ; preds = %576
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  br label %578

578:                                              ; preds = %577
  %579 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %54) #9
  br label %522

580:                                              ; preds = %571, %567, %566, %557
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #9
  br label %775

581:                                              ; preds = %524
  br label %771

582:                                              ; preds = %388
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #9
  %583 = load ptr, ptr %40, align 8, !tbaa !5
  %584 = getelementptr inbounds %"struct.MirBuilder::ScopeDef", ptr %583, i32 0, i32 2
  %585 = invoke noundef ptr @_ZN9ScopeType9opt_SplitEv(ptr noundef nonnull align 8 dereferenceable(240) %584)
          to label %586 unwind label %608

586:                                              ; preds = %582
  store ptr %585, ptr %64, align 8, !tbaa !5
  %587 = load ptr, ptr %64, align 8, !tbaa !5
  %588 = icmp ne ptr %587, null
  br i1 %588, label %589, label %769

589:                                              ; preds = %586
  %590 = load ptr, ptr %64, align 8, !tbaa !5
  %591 = getelementptr inbounds %"struct.ScopeType::Data_Split", ptr %590, i32 0, i32 0
  %592 = load i8, ptr %591, align 8, !tbaa !66, !range !22, !noundef !23
  %593 = trunc i8 %592 to i1
  br i1 %593, label %594, label %683

594:                                              ; preds = %589
  br label %595

595:                                              ; preds = %594
  %596 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %597 unwind label %608

597:                                              ; preds = %595
  br i1 %596, label %598, label %612

598:                                              ; preds = %597
  %599 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %600 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %599, ptr noundef @__func__._ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_)
          to label %601 unwind label %608

601:                                              ; preds = %598
  %602 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %600, ptr noundef @.str.50)
          to label %603 unwind label %608

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

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

607:                                              ; preds = %605
  br label %612

608:                                              ; preds = %694, %692, %690, %687, %684, %605, %603, %601, %598, %595, %582
  %609 = landingpad { ptr, i32 }
          cleanup
  %610 = extractvalue { ptr, i32 } %609, 0
  store ptr %610, ptr %12, align 8
  %611 = extractvalue { ptr, i32 } %609, 1
  store i32 %611, ptr %13, align 4
  br label %770

612:                                              ; preds = %607, %597
  br label %613

613:                                              ; preds = %612
  br label %614

614:                                              ; preds = %613
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #9
  %615 = load ptr, ptr %31, align 8, !tbaa !5
  store ptr %615, ptr %65, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #9
  %616 = load ptr, ptr %65, align 8, !tbaa !5
  %617 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %616) #9
  %618 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %66, i32 0, i32 0
  store ptr %617, ptr %618, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %67) #9
  %619 = load ptr, ptr %65, align 8, !tbaa !5
  %620 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %619) #9
  %621 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %67, i32 0, i32 0
  store ptr %620, ptr %621, align 8
  br label %622

622:                                              ; preds = %679, %614
  %623 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef nonnull align 8 dereferenceable(8) %67) #9
  br i1 %623, label %625, label %624

624:                                              ; preds = %622
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  br label %682

625:                                              ; preds = %622
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #9
  %626 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %66) #9
  %627 = load i32, ptr %626, align 4, !tbaa !9
  store i32 %627, ptr %68, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 16, ptr %69) #9
  %628 = load ptr, ptr %64, align 8, !tbaa !5
  %629 = getelementptr inbounds %"struct.ScopeType::Data_Split", ptr %628, i32 0, i32 2
  %630 = getelementptr inbounds %struct.SplitEnd, ptr %629, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 48, ptr %70) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr %71) #9
  invoke void @_ZN8VarStateC2E11InvalidType(ptr noundef nonnull align 8 dereferenceable(40) %71, i32 noundef 0)
          to label %631 unwind label %645

631:                                              ; preds = %625
  invoke void @_ZSt9make_pairIRj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind writable sret(%"struct.std::pair.413") align 8 %70, ptr noundef nonnull align 4 dereferenceable(4) %68, ptr noundef nonnull align 8 dereferenceable(40) %71)
          to label %632 unwind label %649

632:                                              ; preds = %631
  %633 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %630, ptr noundef nonnull align 8 dereferenceable(48) %70)
          to label %634 unwind label %653

634:                                              ; preds = %632
  store { ptr, i8 } %633, ptr %72, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %69, ptr align 8 %72, i64 9, i1 false)
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %70) #9
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %71) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %70) #9
  br label %635

635:                                              ; preds = %634
  %636 = getelementptr inbounds %"struct.std::pair.411", ptr %69, i32 0, i32 1
  %637 = load i8, ptr %636, align 8, !tbaa !63, !range !22, !noundef !23
  %638 = trunc i8 %637 to i1
  br i1 %638, label %676, label %639

639:                                              ; preds = %635
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #9
  %640 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %73, ptr noundef nonnull align 8 dereferenceable(8) %640)
          to label %641 unwind label %659

641:                                              ; preds = %639
  call void @llvm.lifetime.start.p0(i64 1, ptr %75) #9
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 1 dereferenceable(1) %75) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %73, ptr noundef %74)
          to label %642 unwind label %663

642:                                              ; preds = %641
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #9
  %643 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %643, ptr noundef @.str.9)
          to label %644 unwind label %668

644:                                              ; preds = %642
  invoke void @__cxa_throw(ptr %643, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #10
          to label %929 unwind label %672

645:                                              ; preds = %625
  %646 = landingpad { ptr, i32 }
          cleanup
  %647 = extractvalue { ptr, i32 } %646, 0
  store ptr %647, ptr %12, align 8
  %648 = extractvalue { ptr, i32 } %646, 1
  store i32 %648, ptr %13, align 4
  br label %658

649:                                              ; preds = %631
  %650 = landingpad { ptr, i32 }
          cleanup
  %651 = extractvalue { ptr, i32 } %650, 0
  store ptr %651, ptr %12, align 8
  %652 = extractvalue { ptr, i32 } %650, 1
  store i32 %652, ptr %13, align 4
  br label %657

653:                                              ; preds = %632
  %654 = landingpad { ptr, i32 }
          cleanup
  %655 = extractvalue { ptr, i32 } %654, 0
  store ptr %655, ptr %12, align 8
  %656 = extractvalue { ptr, i32 } %654, 1
  store i32 %656, ptr %13, align 4
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %70) #9
  br label %657

657:                                              ; preds = %653, %649
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %71) #9
  br label %658

658:                                              ; preds = %657, %645
  call void @llvm.lifetime.end.p0(i64 40, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %70) #9
  br label %681

659:                                              ; preds = %639
  %660 = landingpad { ptr, i32 }
          cleanup
  %661 = extractvalue { ptr, i32 } %660, 0
  store ptr %661, ptr %12, align 8
  %662 = extractvalue { ptr, i32 } %660, 1
  store i32 %662, ptr %13, align 4
  br label %667

663:                                              ; preds = %641
  %664 = landingpad { ptr, i32 }
          cleanup
  %665 = extractvalue { ptr, i32 } %664, 0
  store ptr %665, ptr %12, align 8
  %666 = extractvalue { ptr, i32 } %664, 1
  store i32 %666, ptr %13, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %75) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %73) #9
  br label %667

667:                                              ; preds = %663, %659
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #9
  br label %681

668:                                              ; preds = %642
  %669 = landingpad { ptr, i32 }
          cleanup
  %670 = extractvalue { ptr, i32 } %669, 0
  store ptr %670, ptr %12, align 8
  %671 = extractvalue { ptr, i32 } %669, 1
  store i32 %671, ptr %13, align 4
  call void @__cxa_free_exception(ptr %643) #9
  br label %681

672:                                              ; preds = %644
  %673 = landingpad { ptr, i32 }
          cleanup
  %674 = extractvalue { ptr, i32 } %673, 0
  store ptr %674, ptr %12, align 8
  %675 = extractvalue { ptr, i32 } %673, 1
  store i32 %675, ptr %13, align 4
  br label %681

676:                                              ; preds = %635
  br label %677

677:                                              ; preds = %676
  br label %678

678:                                              ; preds = %677
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  br label %679

679:                                              ; preds = %678
  %680 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %66) #9
  br label %622

681:                                              ; preds = %672, %668, %667, %658
  call void @llvm.lifetime.end.p0(i64 16, ptr %69) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %67) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #9
  br label %770

682:                                              ; preds = %624
  br label %700

683:                                              ; preds = %589
  br label %684

684:                                              ; preds = %683
  %685 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %686 unwind label %608

686:                                              ; preds = %684
  br i1 %685, label %687, label %697

687:                                              ; preds = %686
  %688 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %689 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %688, ptr noundef @__func__._ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_)
          to label %690 unwind label %608

690:                                              ; preds = %687
  %691 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %689, ptr noundef @.str.51)
          to label %692 unwind label %608

692:                                              ; preds = %690
  %693 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %691, ptr noundef @_ZSt3decRSt8ios_base)
          to label %694 unwind label %608

694:                                              ; preds = %692
  %695 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %693, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %696 unwind label %608

696:                                              ; preds = %694
  br label %697

697:                                              ; preds = %696, %686
  br label %698

698:                                              ; preds = %697
  br label %699

699:                                              ; preds = %698
  br label %700

700:                                              ; preds = %699, %682
  %701 = load ptr, ptr %64, align 8, !tbaa !5
  %702 = getelementptr inbounds %"struct.ScopeType::Data_Split", ptr %701, i32 0, i32 3
  %703 = call noundef zeroext i1 @_ZNKSt6vectorI8SplitArmSaIS0_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %702) #9
  %704 = xor i1 %703, true
  br i1 %704, label %705, label %706

705:                                              ; preds = %700
  br label %708

706:                                              ; preds = %700
  call void @__assert_fail(ptr noundef @.str.52, ptr noundef @.str.7, i32 noundef 885, ptr noundef @__PRETTY_FUNCTION__._ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_) #11
  unreachable

707:                                              ; No predecessors!
  br label %708

708:                                              ; preds = %707, %705
  call void @llvm.lifetime.start.p0(i64 8, ptr %76) #9
  %709 = load ptr, ptr %64, align 8, !tbaa !5
  %710 = getelementptr inbounds %"struct.ScopeType::Data_Split", ptr %709, i32 0, i32 3
  %711 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZNSt6vectorI8SplitArmSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %710) #9
  store ptr %711, ptr %76, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %77) #9
  %712 = load ptr, ptr %31, align 8, !tbaa !5
  store ptr %712, ptr %77, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #9
  %713 = load ptr, ptr %77, align 8, !tbaa !5
  %714 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %713) #9
  %715 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %78, i32 0, i32 0
  store ptr %714, ptr %715, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %79) #9
  %716 = load ptr, ptr %77, align 8, !tbaa !5
  %717 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %716) #9
  %718 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %79, i32 0, i32 0
  store ptr %717, ptr %718, align 8
  br label %719

719:                                              ; preds = %747, %708
  %720 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %78, ptr noundef nonnull align 8 dereferenceable(8) %79) #9
  br i1 %720, label %722, label %721

721:                                              ; preds = %719
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #9
  br label %768

722:                                              ; preds = %719
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #9
  %723 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %78) #9
  %724 = load i32, ptr %723, align 4, !tbaa !9
  store i32 %724, ptr %80, align 4, !tbaa !9
  %725 = load ptr, ptr %76, align 8, !tbaa !5
  %726 = getelementptr inbounds %struct.SplitArm, ptr %725, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 48, ptr %81) #9
  %727 = getelementptr inbounds %class.MirBuilder, ptr %101, i32 0, i32 13
  %728 = load i32, ptr %80, align 4, !tbaa !9
  %729 = zext i32 %728 to i64
  %730 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorI8VarStateSaIS0_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %727, i64 noundef %729)
          to label %731 unwind label %749

731:                                              ; preds = %722
  invoke void @_ZSt9make_pairIRj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind writable sret(%"struct.std::pair.413") align 8 %81, ptr noundef nonnull align 4 dereferenceable(4) %80, ptr noundef nonnull align 8 dereferenceable(40) %730)
          to label %732 unwind label %749

732:                                              ; preds = %731
  %733 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %726, ptr noundef nonnull align 8 dereferenceable(48) %81)
          to label %734 unwind label %753

734:                                              ; preds = %732
  %735 = getelementptr inbounds { ptr, i8 }, ptr %82, i32 0, i32 0
  %736 = extractvalue { ptr, i8 } %733, 0
  store ptr %736, ptr %735, align 8
  %737 = getelementptr inbounds { ptr, i8 }, ptr %82, i32 0, i32 1
  %738 = extractvalue { ptr, i8 } %733, 1
  store i8 %738, ptr %737, align 8
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %81) #9
  call void @llvm.lifetime.end.p0(i64 48, ptr %81) #9
  call void @llvm.lifetime.start.p0(i64 40, ptr %83) #9
  invoke void @_ZN8VarStateC2E11InvalidType(ptr noundef nonnull align 8 dereferenceable(40) %83, i32 noundef 0)
          to label %739 unwind label %758

739:                                              ; preds = %734
  %740 = getelementptr inbounds %class.MirBuilder, ptr %101, i32 0, i32 13
  %741 = load i32, ptr %80, align 4, !tbaa !9
  %742 = zext i32 %741 to i64
  %743 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorI8VarStateSaIS0_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %740, i64 noundef %742)
          to label %744 unwind label %762

744:                                              ; preds = %739
  %745 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN8VarStateaSEOS_(ptr noundef nonnull align 8 dereferenceable(40) %743, ptr noundef nonnull align 8 dereferenceable(40) %83)
          to label %746 unwind label %762

746:                                              ; preds = %744
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %83) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %83) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %747

747:                                              ; preds = %746
  %748 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %78) #9
  br label %719

749:                                              ; preds = %731, %722
  %750 = landingpad { ptr, i32 }
          cleanup
  %751 = extractvalue { ptr, i32 } %750, 0
  store ptr %751, ptr %12, align 8
  %752 = extractvalue { ptr, i32 } %750, 1
  store i32 %752, ptr %13, align 4
  br label %757

753:                                              ; preds = %732
  %754 = landingpad { ptr, i32 }
          cleanup
  %755 = extractvalue { ptr, i32 } %754, 0
  store ptr %755, ptr %12, align 8
  %756 = extractvalue { ptr, i32 } %754, 1
  store i32 %756, ptr %13, align 4
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %81) #9
  br label %757

757:                                              ; preds = %753, %749
  call void @llvm.lifetime.end.p0(i64 48, ptr %81) #9
  br label %767

758:                                              ; preds = %734
  %759 = landingpad { ptr, i32 }
          cleanup
  %760 = extractvalue { ptr, i32 } %759, 0
  store ptr %760, ptr %12, align 8
  %761 = extractvalue { ptr, i32 } %759, 1
  store i32 %761, ptr %13, align 4
  br label %766

762:                                              ; preds = %744, %739
  %763 = landingpad { ptr, i32 }
          cleanup
  %764 = extractvalue { ptr, i32 } %763, 0
  store ptr %764, ptr %12, align 8
  %765 = extractvalue { ptr, i32 } %763, 1
  store i32 %765, ptr %13, align 4
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %83) #9
  br label %766

766:                                              ; preds = %762, %758
  call void @llvm.lifetime.end.p0(i64 40, ptr %83) #9
  br label %767

767:                                              ; preds = %766, %757
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %79) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %77) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #9
  br label %770

768:                                              ; preds = %721
  call void @llvm.lifetime.end.p0(i64 8, ptr %76) #9
  br label %769

769:                                              ; preds = %768, %586
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  br label %771

770:                                              ; preds = %767, %681, %608
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #9
  br label %775

771:                                              ; preds = %769, %581
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  br label %772

772:                                              ; preds = %771
  %773 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %37)
          to label %774 unwind label %777

774:                                              ; preds = %772
  br label %363, !llvm.loop !72

775:                                              ; preds = %770, %580, %495, %422
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #9
  br label %776

776:                                              ; preds = %775, %418
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  br label %919

777:                                              ; preds = %793, %772
  %778 = landingpad { ptr, i32 }
          cleanup
  %779 = extractvalue { ptr, i32 } %778, 0
  store ptr %779, ptr %12, align 8
  %780 = extractvalue { ptr, i32 } %778, 1
  store i32 %780, ptr %13, align 4
  br label %919

781:                                              ; preds = %375
  call void @llvm.lifetime.start.p0(i64 8, ptr %84) #9
  %782 = getelementptr inbounds %class.MirBuilder, ptr %101, i32 0, i32 17
  call void @_ZNSt6vectorIjSaIjEE4rendEv(ptr dead_on_unwind writable sret(%"class.std::reverse_iterator") align 8 %84, ptr noundef nonnull align 8 dereferenceable(24) %782) #9
  %783 = invoke noundef zeroext i1 @_ZSteqIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEbRKSt16reverse_iteratorIT_ESB_(ptr noundef nonnull align 8 dereferenceable(8) %37, ptr noundef nonnull align 8 dereferenceable(8) %84)
          to label %784 unwind label %794

784:                                              ; preds = %781
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #9
  br i1 %783, label %785, label %813

785:                                              ; preds = %784
  br label %786

786:                                              ; preds = %785
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #9
  %787 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef nonnull align 8 dereferenceable(8) %787)
          to label %788 unwind label %798

788:                                              ; preds = %786
  call void @llvm.lifetime.start.p0(i64 8, ptr %87) #9
  %789 = getelementptr inbounds %class.anon.447, ptr %87, i32 0, i32 0
  %790 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %790, ptr %789, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull align 8 dereferenceable(8) %87) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef %86)
          to label %791 unwind label %802

791:                                              ; preds = %788
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #9
  %792 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %792, ptr noundef @.str.9)
          to label %793 unwind label %807

793:                                              ; preds = %791
  invoke void @__cxa_throw(ptr %792, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #10
          to label %929 unwind label %777

794:                                              ; preds = %781
  %795 = landingpad { ptr, i32 }
          cleanup
  %796 = extractvalue { ptr, i32 } %795, 0
  store ptr %796, ptr %12, align 8
  %797 = extractvalue { ptr, i32 } %795, 1
  store i32 %797, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %84) #9
  br label %919

798:                                              ; preds = %786
  %799 = landingpad { ptr, i32 }
          cleanup
  %800 = extractvalue { ptr, i32 } %799, 0
  store ptr %800, ptr %12, align 8
  %801 = extractvalue { ptr, i32 } %799, 1
  store i32 %801, ptr %13, align 4
  br label %806

802:                                              ; preds = %788
  %803 = landingpad { ptr, i32 }
          cleanup
  %804 = extractvalue { ptr, i32 } %803, 0
  store ptr %804, ptr %12, align 8
  %805 = extractvalue { ptr, i32 } %803, 1
  store i32 %805, ptr %13, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %87) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %85) #9
  br label %806

806:                                              ; preds = %802, %798
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #9
  br label %919

807:                                              ; preds = %791
  %808 = landingpad { ptr, i32 }
          cleanup
  %809 = extractvalue { ptr, i32 } %808, 0
  store ptr %809, ptr %12, align 8
  %810 = extractvalue { ptr, i32 } %808, 1
  store i32 %810, ptr %13, align 4
  call void @__cxa_free_exception(ptr %792) #9
  br label %919

811:                                              ; No predecessors!
  br label %812

812:                                              ; preds = %811
  br label %813

813:                                              ; preds = %812, %784
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #9
  %814 = getelementptr inbounds %class.MirBuilder, ptr %101, i32 0, i32 16
  %815 = load ptr, ptr %8, align 8, !tbaa !5
  %816 = getelementptr inbounds %class.ScopeHandle, ptr %815, i32 0, i32 1
  %817 = load i32, ptr %816, align 8, !tbaa !11
  %818 = zext i32 %817 to i64
  %819 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZNSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %814, i64 noundef %818)
          to label %820 unwind label %832

820:                                              ; preds = %813
  store ptr %819, ptr %88, align 8, !tbaa !5
  br label %821

821:                                              ; preds = %820
  %822 = load ptr, ptr %88, align 8, !tbaa !5
  %823 = getelementptr inbounds %"struct.MirBuilder::ScopeDef", ptr %822, i32 0, i32 2
  %824 = invoke noundef zeroext i1 @_ZNK9ScopeType9is_OwningEv(ptr noundef nonnull align 8 dereferenceable(240) %823)
          to label %825 unwind label %832

825:                                              ; preds = %821
  br i1 %824, label %849, label %826

826:                                              ; preds = %825
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #9
  %827 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %89, ptr noundef nonnull align 8 dereferenceable(8) %827)
          to label %828 unwind label %836

828:                                              ; preds = %826
  call void @llvm.lifetime.start.p0(i64 1, ptr %91) #9
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %90, ptr noundef nonnull align 1 dereferenceable(1) %91) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %89, ptr noundef %90)
          to label %829 unwind label %840

829:                                              ; preds = %828
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #9
  %830 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %830, ptr noundef @.str.9)
          to label %831 unwind label %845

831:                                              ; preds = %829
  invoke void @__cxa_throw(ptr %830, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #10
          to label %929 unwind label %832

832:                                              ; preds = %865, %852, %831, %821, %813
  %833 = landingpad { ptr, i32 }
          cleanup
  %834 = extractvalue { ptr, i32 } %833, 0
  store ptr %834, ptr %12, align 8
  %835 = extractvalue { ptr, i32 } %833, 1
  store i32 %835, ptr %13, align 4
  br label %918

836:                                              ; preds = %826
  %837 = landingpad { ptr, i32 }
          cleanup
  %838 = extractvalue { ptr, i32 } %837, 0
  store ptr %838, ptr %12, align 8
  %839 = extractvalue { ptr, i32 } %837, 1
  store i32 %839, ptr %13, align 4
  br label %844

840:                                              ; preds = %828
  %841 = landingpad { ptr, i32 }
          cleanup
  %842 = extractvalue { ptr, i32 } %841, 0
  store ptr %842, ptr %12, align 8
  %843 = extractvalue { ptr, i32 } %841, 1
  store i32 %843, ptr %13, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %90) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %91) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %89) #9
  br label %844

844:                                              ; preds = %840, %836
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #9
  br label %918

845:                                              ; preds = %829
  %846 = landingpad { ptr, i32 }
          cleanup
  %847 = extractvalue { ptr, i32 } %846, 0
  store ptr %847, ptr %12, align 8
  %848 = extractvalue { ptr, i32 } %846, 1
  store i32 %848, ptr %13, align 4
  call void @__cxa_free_exception(ptr %830) #9
  br label %918

849:                                              ; preds = %825
  br label %850

850:                                              ; preds = %849
  br label %851

851:                                              ; preds = %850
  br label %852

852:                                              ; preds = %851
  %853 = load ptr, ptr %88, align 8, !tbaa !5
  %854 = getelementptr inbounds %"struct.MirBuilder::ScopeDef", ptr %853, i32 0, i32 2
  %855 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN9ScopeType9as_OwningEv(ptr noundef nonnull align 8 dereferenceable(240) %854)
          to label %856 unwind label %832

856:                                              ; preds = %852
  %857 = getelementptr inbounds %"struct.ScopeType::Data_Owning", ptr %855, i32 0, i32 0
  %858 = load i8, ptr %857, align 8, !tbaa !15, !range !22, !noundef !23
  %859 = trunc i8 %858 to i1
  br i1 %859, label %879, label %860

860:                                              ; preds = %856
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #9
  %861 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %92, ptr noundef nonnull align 8 dereferenceable(8) %861)
          to label %862 unwind label %866

862:                                              ; preds = %860
  call void @llvm.lifetime.start.p0(i64 1, ptr %94) #9
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef nonnull align 1 dereferenceable(1) %94) #9
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %92, ptr noundef %93)
          to label %863 unwind label %870

863:                                              ; preds = %862
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #9
  %864 = call ptr @__cxa_allocate_exception(i64 16) #9
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %864, ptr noundef @.str.9)
          to label %865 unwind label %875

865:                                              ; preds = %863
  invoke void @__cxa_throw(ptr %864, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #10
          to label %929 unwind label %832

866:                                              ; preds = %860
  %867 = landingpad { ptr, i32 }
          cleanup
  %868 = extractvalue { ptr, i32 } %867, 0
  store ptr %868, ptr %12, align 8
  %869 = extractvalue { ptr, i32 } %867, 1
  store i32 %869, ptr %13, align 4
  br label %874

870:                                              ; preds = %862
  %871 = landingpad { ptr, i32 }
          cleanup
  %872 = extractvalue { ptr, i32 } %871, 0
  store ptr %872, ptr %12, align 8
  %873 = extractvalue { ptr, i32 } %871, 1
  store i32 %873, ptr %13, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #9
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %92) #9
  br label %874

874:                                              ; preds = %870, %866
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #9
  br label %918

875:                                              ; preds = %863
  %876 = landingpad { ptr, i32 }
          cleanup
  %877 = extractvalue { ptr, i32 } %876, 0
  store ptr %877, ptr %12, align 8
  %878 = extractvalue { ptr, i32 } %876, 1
  store i32 %878, ptr %13, align 4
  call void @__cxa_free_exception(ptr %864) #9
  br label %918

879:                                              ; preds = %856
  br label %880

880:                                              ; preds = %879
  br label %881

881:                                              ; preds = %880
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #9
  %882 = load ptr, ptr %88, align 8, !tbaa !5
  %883 = getelementptr inbounds %"struct.MirBuilder::ScopeDef", ptr %882, i32 0, i32 2
  %884 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN9ScopeType9as_OwningEv(ptr noundef nonnull align 8 dereferenceable(240) %883)
          to label %885 unwind label %909

885:                                              ; preds = %881
  %886 = getelementptr inbounds %"struct.ScopeType::Data_Owning", ptr %884, i32 0, i32 1
  store ptr %886, ptr %95, align 8, !tbaa !5
  %887 = load ptr, ptr %95, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #9
  %888 = load ptr, ptr %95, align 8, !tbaa !5
  %889 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %888) #9
  %890 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %97, i32 0, i32 0
  store ptr %889, ptr %890, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEC2IPjvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %96, ptr noundef nonnull align 8 dereferenceable(8) %97) #9
  %891 = load ptr, ptr %31, align 8, !tbaa !5
  %892 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %891) #9
  %893 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %98, i32 0, i32 0
  store ptr %892, ptr %893, align 8
  %894 = load ptr, ptr %31, align 8, !tbaa !5
  %895 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %894) #9
  %896 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %99, i32 0, i32 0
  store ptr %895, ptr %896, align 8
  %897 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.409", ptr %96, i32 0, i32 0
  %898 = load ptr, ptr %897, align 8
  %899 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %98, i32 0, i32 0
  %900 = load ptr, ptr %899, align 8
  %901 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %99, i32 0, i32 0
  %902 = load ptr, ptr %901, align 8
  %903 = invoke ptr @_ZNSt6vectorIjSaIjEE6insertIN9__gnu_cxx17__normal_iteratorIPjS1_EEvEES6_NS4_IPKjS1_EET_SA_(ptr noundef nonnull align 8 dereferenceable(24) %887, ptr %898, ptr %900, ptr %902)
          to label %904 unwind label %913

904:                                              ; preds = %885
  %905 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %100, i32 0, i32 0
  store ptr %903, ptr %905, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #9
  %906 = getelementptr inbounds %class.MirBuilder, ptr %101, i32 0, i32 17
  call void @_ZNSt6vectorIjSaIjEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %906) #9
  %907 = load ptr, ptr %24, align 8, !tbaa !5
  %908 = getelementptr inbounds %"struct.MirBuilder::ScopeDef", ptr %907, i32 0, i32 1
  store i8 1, ptr %908, align 8, !tbaa !74
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %9) #9
  call void @llvm.lifetime.end.p0(i64 40, ptr %9) #9
  ret void

909:                                              ; preds = %881
  %910 = landingpad { ptr, i32 }
          cleanup
  %911 = extractvalue { ptr, i32 } %910, 0
  store ptr %911, ptr %12, align 8
  %912 = extractvalue { ptr, i32 } %910, 1
  store i32 %912, ptr %13, align 4
  br label %917

913:                                              ; preds = %885
  %914 = landingpad { ptr, i32 }
          cleanup
  %915 = extractvalue { ptr, i32 } %914, 0
  store ptr %915, ptr %12, align 8
  %916 = extractvalue { ptr, i32 } %914, 1
  store i32 %916, ptr %13, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #9
  br label %917

917:                                              ; preds = %913, %909
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #9
  br label %918

918:                                              ; preds = %917, %875, %874, %845, %844, %832
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #9
  br label %919

919:                                              ; preds = %918, %807, %806, %794, %777, %776, %414, %410
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #9
  br label %920

920:                                              ; preds = %919, %359, %308
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  br label %921

921:                                              ; preds = %920, %286, %285, %256, %255, %243
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  br label %922

922:                                              ; preds = %921, %224, %141
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %9) #9
  br label %923

923:                                              ; preds = %922, %137
  call void @llvm.lifetime.end.p0(i64 40, ptr %9) #9
  br label %924

924:                                              ; preds = %923
  %925 = load ptr, ptr %12, align 8
  %926 = load i32, ptr %13, align 4
  %927 = insertvalue { ptr, i32 } poison, ptr %925, 0
  %928 = insertvalue { ptr, i32 } %927, i32 %926, 1
  resume { ptr, i32 } %928

929:                                              ; preds = %865, %831, %793, %644, %543, %458, %276, %242, %203, %173
  unreachable
}

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_3vEEOT_"(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 @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_4vEEOT_"(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 dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEdeEv(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 @_ZN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEplEl(ptr dead_on_unwind noalias writable sret(%"class.std::reverse_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIRj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(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: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_5vEEOT_"(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 @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_6vEEOT_"(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 @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_7vEEOT_"(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 dso_local noundef zeroext i1 @_ZNKSt6vectorI8SplitArmSaIS0_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_8vEEOT_"(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 @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_9vEEOT_"(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 @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZNSt6vectorIjSaIjEE6insertIN9__gnu_cxx17__normal_iteratorIPjS1_EEvEES6_NS4_IPKjS1_EET_SA_(ptr noundef nonnull align 8 dereferenceable(24), ptr, ptr, ptr) #4 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 = { 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 #6 = { 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 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { 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 #9 = { nounwind }
attributes #10 = { noreturn }
attributes #11 = { 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 = !{!"int", !7, i64 0}
!11 = !{!12, !10, i64 8}
!12 = !{!"_ZTS11ScopeHandle", !6, i64 0, !10, i64 8}
!13 = !{!14, !6, i64 8}
!14 = !{!"_ZTSZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_E3$_2", !6, i64 0, !6, i64 8, !6, i64 16}
!15 = !{!16, !17, i64 0}
!16 = !{!"_ZTSN9ScopeType11Data_OwningE", !17, i64 0, !18, i64 8}
!17 = !{!"bool", !7, i64 0}
!18 = !{!"_ZTSSt6vectorIjSaIjEE", !19, i64 0}
!19 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!22 = !{i8 0, i8 2}
!23 = !{}
!24 = !{!25, !34, i64 264}
!25 = !{!"_ZTS10MirBuilder", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !10, i64 48, !17, i64 52, !26, i64 56, !17, i64 168, !28, i64 176, !30, i64 216, !30, i64 240, !34, i64 264, !35, i64 272, !43, i64 320, !18, i64 344, !12, i64 368, !47, i64 384, !51, i64 408}
!26 = !{!"_ZTSN3MIR6RValueE", !27, i64 0, !7, i64 8}
!27 = !{!"_ZTSN3MIR6RValue3TagE", !7, i64 0}
!28 = !{!"_ZTS8VarState", !29, i64 0, !7, i64 8}
!29 = !{!"_ZTSN8VarState3TagE", !7, i64 0}
!30 = !{!"_ZTSSt6vectorI8VarStateSaIS0_EE", !31, i64 0}
!31 = !{!"_ZTSSt12_Vector_baseI8VarStateSaIS0_EE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseI8VarStateSaIS0_EE12_Vector_implE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseI8VarStateSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!34 = !{!"long", !7, i64 0}
!35 = !{!"_ZTSSt3mapIjjSt4lessIjESaISt4pairIKjjEEE", !36, i64 0}
!36 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE", !37, i64 0}
!37 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE13_Rb_tree_implIS6_Lb1EEE", !38, i64 0, !40, i64 8}
!38 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIjEE", !39, i64 0}
!39 = !{!"_ZTSSt4lessIjE"}
!40 = !{!"_ZTSSt15_Rb_tree_header", !41, i64 0, !34, i64 32}
!41 = !{!"_ZTSSt18_Rb_tree_node_base", !42, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!42 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!43 = !{!"_ZTSSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE", !44, i64 0}
!44 = !{!"_ZTSSt12_Vector_baseIN10MirBuilder8ScopeDefESaIS1_EE", !45, i64 0}
!45 = !{!"_ZTSNSt12_Vector_baseIN10MirBuilder8ScopeDefESaIS1_EE12_Vector_implE", !46, i64 0}
!46 = !{!"_ZTSNSt12_Vector_baseIN10MirBuilder8ScopeDefESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!47 = !{!"_ZTSSt6vectorISt4pairIN3HIR14PatternBinding4TypeEN3MIR6LValueEESaIS6_EE", !48, i64 0}
!48 = !{!"_ZTSSt12_Vector_baseISt4pairIN3HIR14PatternBinding4TypeEN3MIR6LValueEESaIS6_EE", !49, i64 0}
!49 = !{!"_ZTSNSt12_Vector_baseISt4pairIN3HIR14PatternBinding4TypeEN3MIR6LValueEESaIS6_EE12_Vector_implE", !50, i64 0}
!50 = !{!"_ZTSNSt12_Vector_baseISt4pairIN3HIR14PatternBinding4TypeEN3MIR6LValueEESaIS6_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!51 = !{!"_ZTSN3MIR6LValueE", !52, i64 0, !53, i64 8}
!52 = !{!"_ZTSN3MIR6LValue7StorageE", !34, i64 0}
!53 = !{!"_ZTSSt6vectorIN3MIR6LValue7WrapperESaIS2_EE", !54, i64 0}
!54 = !{!"_ZTSSt12_Vector_baseIN3MIR6LValue7WrapperESaIS2_EE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseIN3MIR6LValue7WrapperESaIS2_EE12_Vector_implE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseIN3MIR6LValue7WrapperESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!57 = !{!58, !17, i64 96}
!58 = !{!"_ZTSN9ScopeType9Data_LoopE", !59, i64 0, !59, i64 48, !17, i64 96, !62, i64 104, !10, i64 200, !18, i64 208}
!59 = !{!"_ZTSSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE", !60, i64 0}
!60 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKj8VarStateESt10_Select1stIS3_ESt4lessIjESaIS3_EE", !61, i64 0}
!61 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKj8VarStateESt10_Select1stIS3_ESt4lessIjESaIS3_EE13_Rb_tree_implIS7_Lb1EEE", !38, i64 0, !40, i64 8}
!62 = !{!"_ZTS8SplitEnd", !59, i64 0, !59, i64 48}
!63 = !{!64, !17, i64 8}
!64 = !{!"_ZTSSt4pairISt17_Rb_tree_iteratorIS_IKj8VarStateEEbE", !65, i64 0, !17, i64 8}
!65 = !{!"_ZTSSt17_Rb_tree_iteratorISt4pairIKj8VarStateEE", !6, i64 0}
!66 = !{!67, !17, i64 0}
!67 = !{!"_ZTSN9ScopeType10Data_SplitE", !17, i64 0, !62, i64 8, !62, i64 104, !68, i64 200}
!68 = !{!"_ZTSSt6vectorI8SplitArmSaIS0_EE", !69, i64 0}
!69 = !{!"_ZTSSt12_Vector_baseI8SplitArmSaIS0_EE", !70, i64 0}
!70 = !{!"_ZTSNSt12_Vector_baseI8SplitArmSaIS0_EE12_Vector_implE", !71, i64 0}
!71 = !{!"_ZTSNSt12_Vector_baseI8SplitArmSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!72 = distinct !{!72, !73}
!73 = !{!"llvm.loop.mustprogress"}
!74 = !{!75, !17, i64 8}
!75 = !{!"_ZTSN10MirBuilder8ScopeDefE", !6, i64 0, !17, i64 8, !76, i64 16}
!76 = !{!"_ZTS9ScopeType", !77, i64 0, !7, i64 8}
!77 = !{!"_ZTSN9ScopeType3TagE", !7, i64 0}


; 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.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 }
%"class.std::reverse_iterator" = type { %"class.__gnu_cxx::__normal_iterator" }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%class.TraceLog = type { ptr, %"class.std::function" }
%"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.434 = type { ptr, ptr }
%struct.Span = type { ptr }
%class.anon.435 = type { ptr }
%class.anon.436 = type { ptr, ptr, ptr }
%class.anon.437 = type { i8 }
%class.anon.439 = type { i8 }
%"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] }
%class.anon.441 = type { i8 }
%class.anon.443 = type { i8 }
%class.anon.445 = type { i8 }
%class.anon.447 = type { ptr }
%class.anon.448 = type { i8 }
%class.anon.450 = type { i8 }
%"class.__gnu_cxx::__normal_iterator.409" = type { 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.44 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [2 x i8], align 1
@__func__._ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_ = external hidden unnamed_addr constant [10 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [24 x i8], align 1
@__PRETTY_FUNCTION__._ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_ = external hidden unnamed_addr constant [75 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [24 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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZN3MIR6LValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #5 align 2

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 #6

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 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 #7

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

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

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

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

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

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 #6

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 #6

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN3MIR6LValue9new_LocalEj(ptr dead_on_unwind noalias writable sret(%"struct.MIR::LValue") align 8, i32 noundef) local_unnamed_addr #4 align 2

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

declare noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIjSaIjEE6rbeginEv(ptr dead_on_unwind noalias writable sret(%"class.std::reverse_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNSt6vectorIjSaIjEE4rendEv(ptr dead_on_unwind noalias writable sret(%"class.std::reverse_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

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

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

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

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

; 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 @_ZN8VarStateC2E11InvalidType(ptr noundef nonnull align 8 dereferenceable(40), i32 noundef) unnamed_addr #4 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZN9ScopeType9opt_SplitEv(ptr noundef nonnull align 8 dereferenceable(240)) local_unnamed_addr #1 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 noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorI8VarStateSaIS0_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #4 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_(ptr noundef nonnull align 8 dereferenceable(440) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(12) %3) local_unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %class.TraceLog, align 8
  %6 = alloca %"class.std::function", align 8
  %7 = alloca %class.anon.434, align 8
  %8 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %9 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %10 = alloca %struct.Span, align 8
  %11 = alloca %"class.std::function", align 8
  %12 = alloca %class.anon.435, align 8
  %13 = alloca %struct.Span, align 8
  %14 = alloca %"class.std::function", align 8
  %15 = alloca %class.anon.436, align 8
  %16 = alloca %struct.Span, align 8
  %17 = alloca %"class.std::function", align 8
  %18 = alloca %class.anon.437, align 1
  %19 = alloca %struct.Span, align 8
  %20 = alloca %"class.std::function", align 8
  %21 = alloca %class.anon.439, align 1
  %22 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %23 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %24 = alloca %"struct.MIR::LValue", align 8
  %25 = alloca %"class.std::reverse_iterator", align 8
  %26 = alloca %"class.std::reverse_iterator", align 8
  %27 = alloca %"class.std::reverse_iterator", align 8
  %28 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %29 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %30 = alloca i32, align 4
  %31 = alloca %"struct.std::pair.413", align 8
  %32 = alloca %class.VarState, align 8
  %33 = alloca %struct.Span, align 8
  %34 = alloca %"class.std::function", align 8
  %35 = alloca %class.anon.441, align 1
  %36 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %37 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %38 = alloca i32, align 4
  %39 = alloca %"struct.std::pair.413", align 8
  %40 = alloca %class.VarState, align 8
  %41 = alloca %struct.Span, align 8
  %42 = alloca %"class.std::function", align 8
  %43 = alloca %class.anon.443, align 1
  %44 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %45 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %46 = alloca i32, align 4
  %47 = alloca %"struct.std::pair.413", align 8
  %48 = alloca %class.VarState, align 8
  %49 = alloca %struct.Span, align 8
  %50 = alloca %"class.std::function", align 8
  %51 = alloca %class.anon.445, align 1
  %52 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %53 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %54 = alloca i32, align 4
  %55 = alloca %"struct.std::pair.413", align 8
  %56 = alloca %class.VarState, align 8
  %57 = alloca %"class.std::reverse_iterator", align 8
  %58 = alloca %struct.Span, align 8
  %59 = alloca %"class.std::function", align 8
  %60 = alloca %class.anon.447, align 8
  %61 = alloca %struct.Span, align 8
  %62 = alloca %"class.std::function", align 8
  %63 = alloca %class.anon.448, align 1
  %64 = alloca %struct.Span, align 8
  %65 = alloca %"class.std::function", align 8
  %66 = alloca %class.anon.450, align 1
  %67 = alloca %"class.__gnu_cxx::__normal_iterator.409", align 8
  %68 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %5) #8
  %69 = tail call noundef zeroext i1 @_Z13debug_enabledv()
  %70 = select i1 %69, ptr @__func__._ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_, ptr null
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) #8
  store ptr %2, ptr %7, align 8, !tbaa !5
  %71 = getelementptr inbounds i8, ptr %7, i64 8
  store ptr %3, ptr %71, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(16) %7) #8
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40) %5, ptr noundef %70, ptr noundef nonnull %6)
          to label %72 unwind label %96

72:                                               ; preds = %4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #8
  %73 = getelementptr inbounds i8, ptr %0, i64 344
  %74 = call noundef zeroext i1 @_ZNKSt6vectorIjSaIjEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %73) #8
  br i1 %74, label %80, label %75

75:                                               ; preds = %72
  %76 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNSt6vectorIjSaIjEE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %73) #8
  %77 = load i32, ptr %76, align 4, !tbaa !9
  %78 = getelementptr inbounds i8, ptr %2, i64 8
  %79 = load i32, ptr %78, align 8, !tbaa !11
  %.not = icmp eq i32 %77, %79
  br i1 %.not, label %140, label %80

80:                                               ; preds = %72, %75
  %81 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %82 unwind label %98

82:                                               ; preds = %80
  br i1 %81, label %83, label %100

83:                                               ; preds = %82
  %84 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %85 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %84, ptr noundef nonnull @__func__._ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_)
          to label %86 unwind label %98

86:                                               ; preds = %83
  %87 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %85, ptr noundef nonnull @.str.44)
          to label %88 unwind label %98

88:                                               ; preds = %86
  %89 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIjERSoS0_RKSt6vectorIT_SaIS2_EE(ptr noundef nonnull align 8 dereferenceable(8) %87, ptr noundef nonnull align 8 dereferenceable(24) %73)
          to label %90 unwind label %98

90:                                               ; preds = %88
  %91 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %89, ptr noundef nonnull @.str.45)
          to label %92 unwind label %98

92:                                               ; preds = %90
  %93 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %91, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %94 unwind label %98

94:                                               ; preds = %92
  %95 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %93, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %100 unwind label %98

96:                                               ; preds = %4
  %97 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) #8
  br label %518

98:                                               ; preds = %94, %92, %90, %88, %86, %83, %80
  %99 = landingpad { ptr, i32 }
          cleanup
  br label %517

100:                                              ; preds = %94, %82
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #8
  %101 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %73) #8
  %102 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %73) #8
  %103 = getelementptr inbounds i8, ptr %2, i64 8
  %104 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEjET_S7_S7_RKT0_(ptr %101, ptr %102, ptr noundef nonnull align 4 dereferenceable(4) %103)
          to label %105 unwind label %112

105:                                              ; preds = %100
  store ptr %104, ptr %8, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #8
  %106 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %73) #8
  store ptr %106, ptr %9, align 8
  %107 = call noundef zeroext i1 @_ZN9__gnu_cxxeqIPjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(8) %9) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #8
  br i1 %107, label %108, label %121

108:                                              ; preds = %105
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %109 unwind label %114

109:                                              ; preds = %108
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #8
  store ptr %2, ptr %12, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull %11)
          to label %110 unwind label %116

110:                                              ; preds = %109
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #8
  %111 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %111, ptr noundef nonnull @.str.9)
          to label %.invoke unwind label %119

112:                                              ; preds = %.invoke, %100
  %113 = landingpad { ptr, i32 }
          cleanup
  br label %139

114:                                              ; preds = %108
  %115 = landingpad { ptr, i32 }
          cleanup
  br label %118

116:                                              ; preds = %109
  %117 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %10) #8
  br label %118

118:                                              ; preds = %116, %114
  %.pn168 = phi { ptr, i32 } [ %117, %116 ], [ %115, %114 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #8
  br label %139

119:                                              ; preds = %110
  %120 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %111) #8
  br label %139

121:                                              ; preds = %105
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %122 unwind label %129

122:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15) #8
  store ptr %2, ptr %15, align 8, !tbaa !5
  %123 = getelementptr inbounds i8, ptr %15, i64 8
  store ptr %0, ptr %123, align 8, !tbaa !13
  %124 = getelementptr inbounds i8, ptr %15, i64 16
  store ptr %8, ptr %124, align 8, !tbaa !5
  invoke void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(24) %15)
          to label %125 unwind label %131

125:                                              ; preds = %122
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull %14)
          to label %126 unwind label %133

126:                                              ; preds = %125
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  %127 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %127, ptr noundef nonnull @.str.9)
          to label %.invoke unwind label %137

.invoke:                                          ; preds = %110, %126
  %128 = phi ptr [ %127, %126 ], [ %111, %110 ]
  invoke void @__cxa_throw(ptr nonnull %128, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %.cont unwind label %112

.cont:                                            ; preds = %.invoke
  unreachable

129:                                              ; preds = %121
  %130 = landingpad { ptr, i32 }
          cleanup
  br label %136

131:                                              ; preds = %122
  %132 = landingpad { ptr, i32 }
          cleanup
  br label %135

133:                                              ; preds = %125
  %134 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #8
  br label %135

135:                                              ; preds = %133, %131
  %.pn165 = phi { ptr, i32 } [ %134, %133 ], [ %132, %131 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %13) #8
  br label %136

136:                                              ; preds = %135, %129
  %.pn165.pn = phi { ptr, i32 } [ %.pn165, %135 ], [ %130, %129 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #8
  br label %139

137:                                              ; preds = %126
  %138 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %127) #8
  br label %139

139:                                              ; preds = %137, %136, %119, %118, %112
  %.pn170 = phi { ptr, i32 } [ %113, %112 ], [ %120, %119 ], [ %.pn168, %118 ], [ %138, %137 ], [ %.pn165.pn, %136 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #8
  br label %517

140:                                              ; preds = %75
  %141 = getelementptr inbounds i8, ptr %0, i64 320
  %142 = zext i32 %77 to i64
  %143 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZNSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %141, i64 noundef %142)
          to label %144 unwind label %151

144:                                              ; preds = %140
  %145 = getelementptr inbounds i8, ptr %143, i64 16
  %146 = call noundef zeroext i1 @_ZNK9ScopeType9is_OwningEv(ptr noundef nonnull align 8 dereferenceable(240) %145)
  br i1 %146, label %160, label %147

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

148:                                              ; preds = %147
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull %17)
          to label %149 unwind label %155

149:                                              ; preds = %148
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  %150 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %150, ptr noundef nonnull @.str.9)
          to label %.invoke186 unwind label %158

151:                                              ; preds = %.invoke186, %140
  %152 = landingpad { ptr, i32 }
          cleanup
  br label %517

153:                                              ; preds = %147
  %154 = landingpad { ptr, i32 }
          cleanup
  br label %157

155:                                              ; preds = %148
  %156 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %16) #8
  br label %157

157:                                              ; preds = %155, %153
  %.pn = phi { ptr, i32 } [ %156, %155 ], [ %154, %153 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #8
  br label %517

158:                                              ; preds = %149
  %159 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %150) #8
  br label %517

160:                                              ; preds = %144
  %161 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN9ScopeType9as_OwningEv(ptr noundef nonnull align 8 dereferenceable(240) %145)
  %162 = load i8, ptr %161, align 8, !tbaa !15, !range !22, !noundef !23
  %163 = trunc nuw i8 %162 to i1
  br i1 %163, label %176, label %164

164:                                              ; preds = %160
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %165 unwind label %169

165:                                              ; preds = %164
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %21) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 1 dereferenceable(1) %21) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull %20)
          to label %166 unwind label %171

166:                                              ; preds = %165
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #8
  %167 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %167, ptr noundef nonnull @.str.9)
          to label %.invoke186 unwind label %174

.invoke186:                                       ; preds = %149, %166
  %168 = phi ptr [ %167, %166 ], [ %150, %149 ]
  invoke void @__cxa_throw(ptr nonnull %168, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %.cont187 unwind label %151

.cont187:                                         ; preds = %.invoke186
  unreachable

169:                                              ; preds = %164
  %170 = landingpad { ptr, i32 }
          cleanup
  br label %173

171:                                              ; preds = %165
  %172 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %21) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #8
  br label %173

173:                                              ; preds = %171, %169
  %.pn116 = phi { ptr, i32 } [ %172, %171 ], [ %170, %169 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #8
  br label %517

174:                                              ; preds = %166
  %175 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %167) #8
  br label %517

176:                                              ; preds = %160
  %177 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN9ScopeType9as_OwningEv(ptr noundef nonnull align 8 dereferenceable(240) %145)
  %178 = getelementptr inbounds i8, ptr %177, i64 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #8
  %179 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %178) #8
  store ptr %179, ptr %22, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #8
  %180 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %178) #8
  store ptr %180, ptr %23, align 8
  %181 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(8) %23) #8
  br i1 %181, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %176
  %182 = getelementptr inbounds i8, ptr %0, i64 264
  br label %185

._crit_edge:                                      ; preds = %214, %176
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #8
  call void @_ZNSt6vectorIjSaIjEE6rbeginEv(ptr dead_on_unwind nonnull writable sret(%"class.std::reverse_iterator") align 8 %26, ptr noundef nonnull align 8 dereferenceable(24) %73) #8
  call void @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEplEl(ptr dead_on_unwind nonnull writable sret(%"class.std::reverse_iterator") align 8 %25, ptr noundef nonnull align 8 dereferenceable(8) %26, i64 noundef 1)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #8
  %183 = getelementptr inbounds i8, ptr %3, i64 8
  %184 = getelementptr inbounds i8, ptr %0, i64 240
  br label %218

185:                                              ; preds = %.lr.ph, %214
  %186 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %22) #8
  %187 = load i32, ptr %186, align 4, !tbaa !9
  %188 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %189 unwind label %203

189:                                              ; preds = %185
  br i1 %188, label %190, label %210

190:                                              ; preds = %189
  %191 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %192 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %191, ptr noundef nonnull @__func__._ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_)
          to label %193 unwind label %203

193:                                              ; preds = %190
  %194 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %192, ptr noundef nonnull @.str.46)
          to label %195 unwind label %203

195:                                              ; preds = %193
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #8
  invoke void @_ZN3MIR6LValue9new_LocalEj(ptr dead_on_unwind nonnull writable sret(%"struct.MIR::LValue") align 8 %24, i32 noundef %187)
          to label %196 unwind label %205

196:                                              ; preds = %195
  %197 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8) %194, ptr noundef nonnull align 8 dereferenceable(32) %24)
          to label %198 unwind label %207

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

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

202:                                              ; preds = %200
  call void @_ZN3MIR6LValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #8
  br label %210

203:                                              ; preds = %193, %190, %185
  %204 = landingpad { ptr, i32 }
          cleanup
  br label %217

205:                                              ; preds = %195
  %206 = landingpad { ptr, i32 }
          cleanup
  br label %209

207:                                              ; preds = %200, %198, %196
  %208 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3MIR6LValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #8
  br label %209

209:                                              ; preds = %207, %205
  %.pn159 = phi { ptr, i32 } [ %208, %207 ], [ %206, %205 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #8
  br label %217

210:                                              ; preds = %202, %189
  %211 = zext i32 %187 to i64
  %212 = load i64, ptr %182, align 8, !tbaa !24
  %.not164 = icmp ugt i64 %212, %211
  br i1 %.not164, label %213, label %214

213:                                              ; preds = %210
  call void @__assert_fail(ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.7, i32 noundef 835, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_) #10
  unreachable

214:                                              ; preds = %210
  %215 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %22) #8
  %216 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(8) %23) #8
  br i1 %216, label %185, label %._crit_edge

217:                                              ; preds = %209, %203
  %.pn159.pn = phi { ptr, i32 } [ %.pn159, %209 ], [ %204, %203 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #8
  br label %517

218:                                              ; preds = %451, %._crit_edge
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #8
  call void @_ZNSt6vectorIjSaIjEE4rendEv(ptr dead_on_unwind nonnull writable sret(%"class.std::reverse_iterator") align 8 %27, ptr noundef nonnull align 8 dereferenceable(24) %73) #8
  %219 = invoke noundef zeroext i1 @_ZStneIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEbRKSt16reverse_iteratorIT_ESB_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %220 unwind label %249

220:                                              ; preds = %218
  br i1 %219, label %221, label %.critedge

221:                                              ; preds = %220
  %222 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %25)
  %223 = load i32, ptr %222, align 4, !tbaa !9
  %224 = load i32, ptr %183, align 8, !tbaa !11
  %.not118 = icmp eq i32 %223, %224
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  br i1 %.not118, label %.loopexit, label %225

225:                                              ; preds = %221
  %226 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %25)
  %227 = load i32, ptr %226, align 4, !tbaa !9
  %228 = zext i32 %227 to i64
  %229 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZNSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %141, i64 noundef %228)
          to label %230 unwind label %251

230:                                              ; preds = %225
  %231 = getelementptr inbounds i8, ptr %229, i64 16
  %232 = call noundef ptr @_ZN9ScopeType8opt_LoopEv(ptr noundef nonnull align 8 dereferenceable(240) %231)
  %.not127 = icmp eq ptr %232, null
  br i1 %.not127, label %343, label %233

233:                                              ; preds = %230
  %234 = getelementptr inbounds i8, ptr %232, i64 96
  %235 = load i8, ptr %234, align 8, !tbaa !57, !range !22, !noundef !23
  %236 = trunc nuw i8 %235 to i1
  br i1 %236, label %237, label %294

237:                                              ; preds = %233
  %238 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %239 unwind label %253

239:                                              ; preds = %237
  br i1 %238, label %240, label %255

240:                                              ; preds = %239
  %241 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %242 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %241, ptr noundef nonnull @__func__._ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_)
          to label %243 unwind label %253

243:                                              ; preds = %240
  %244 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %242, ptr noundef nonnull @.str.48)
          to label %245 unwind label %253

245:                                              ; preds = %243
  %246 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %244, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %247 unwind label %253

247:                                              ; preds = %245
  %248 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %246, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %255 unwind label %253

249:                                              ; preds = %218
  %250 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  br label %516

251:                                              ; preds = %225
  %252 = landingpad { ptr, i32 }
          cleanup
  br label %516

253:                                              ; preds = %304, %302, %300, %297, %294, %247, %245, %243, %240, %237
  %254 = landingpad { ptr, i32 }
          cleanup
  br label %516

255:                                              ; preds = %247, %239
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #8
  %256 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %178) #8
  store ptr %256, ptr %28, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #8
  %257 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %178) #8
  store ptr %257, ptr %29, align 8
  %258 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %29) #8
  br i1 %258, label %.lr.ph175, label %._crit_edge176

.lr.ph175:                                        ; preds = %255
  %259 = getelementptr inbounds i8, ptr %232, i64 104
  br label %260

._crit_edge176:                                   ; preds = %290, %255
  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 %306

260:                                              ; preds = %.lr.ph175, %290
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %30) #8
  %261 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  %262 = load i32, ptr %261, align 4, !tbaa !9
  store i32 %262, ptr %30, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %31) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %32) #8
  invoke void @_ZN8VarStateC2E11InvalidType(ptr noundef nonnull align 8 dereferenceable(40) %32, i32 noundef 0)
          to label %263 unwind label %273

263:                                              ; preds = %260
  invoke void @_ZSt9make_pairIRj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.413") align 8 %31, ptr noundef nonnull align 4 dereferenceable(4) %30, ptr noundef nonnull align 8 dereferenceable(40) %32)
          to label %264 unwind label %275

264:                                              ; preds = %263
  %265 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %259, ptr noundef nonnull align 8 dereferenceable(48) %31)
          to label %266 unwind label %277

266:                                              ; preds = %264
  %.fca.1.extract30 = extractvalue { ptr, i8 } %265, 1
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %31) #8
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %32) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %31) #8
  %267 = trunc i8 %.fca.1.extract30 to i1
  br i1 %267, label %290, label %268

268:                                              ; preds = %266
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %269 unwind label %281

269:                                              ; preds = %268
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %35) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %34, ptr noundef nonnull align 1 dereferenceable(1) %35) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull %34)
          to label %270 unwind label %283

270:                                              ; preds = %269
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #8
  %271 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %271, ptr noundef nonnull @.str.9)
          to label %272 unwind label %286

272:                                              ; preds = %270
  invoke void @__cxa_throw(ptr nonnull %271, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %519 unwind label %288

273:                                              ; preds = %260
  %274 = landingpad { ptr, i32 }
          cleanup
  br label %280

275:                                              ; preds = %263
  %276 = landingpad { ptr, i32 }
          cleanup
  br label %279

277:                                              ; preds = %264
  %278 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %31) #8
  br label %279

279:                                              ; preds = %277, %275
  %.pn149 = phi { ptr, i32 } [ %278, %277 ], [ %276, %275 ]
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %32) #8
  br label %280

280:                                              ; preds = %279, %273
  %.pn149.pn = phi { ptr, i32 } [ %.pn149, %279 ], [ %274, %273 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %31) #8
  br label %293

281:                                              ; preds = %268
  %282 = landingpad { ptr, i32 }
          cleanup
  br label %285

283:                                              ; preds = %269
  %284 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %35) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %33) #8
  br label %285

285:                                              ; preds = %283, %281
  %.pn152 = phi { ptr, i32 } [ %284, %283 ], [ %282, %281 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #8
  br label %293

286:                                              ; preds = %270
  %287 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %271) #8
  br label %293

288:                                              ; preds = %272
  %289 = landingpad { ptr, i32 }
          cleanup
  br label %293

290:                                              ; preds = %266
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #8
  %291 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  %292 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %29) #8
  br i1 %292, label %260, label %._crit_edge176

293:                                              ; preds = %288, %286, %285, %280
  %.pn154 = phi { ptr, i32 } [ %289, %288 ], [ %287, %286 ], [ %.pn152, %285 ], [ %.pn149.pn, %280 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %30) #8
  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 %516

294:                                              ; preds = %233
  %295 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %296 unwind label %253

296:                                              ; preds = %294
  br i1 %295, label %297, label %306

297:                                              ; preds = %296
  %298 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %299 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %298, ptr noundef nonnull @__func__._ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_)
          to label %300 unwind label %253

300:                                              ; preds = %297
  %301 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %299, ptr noundef nonnull @.str.49)
          to label %302 unwind label %253

302:                                              ; preds = %300
  %303 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %301, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %304 unwind label %253

304:                                              ; preds = %302
  %305 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %303, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %306 unwind label %253

306:                                              ; preds = %296, %304, %._crit_edge176
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #8
  %307 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %178) #8
  store ptr %307, ptr %36, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #8
  %308 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %178) #8
  store ptr %308, ptr %37, align 8
  %309 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %37) #8
  br i1 %309, label %.lr.ph178, label %._crit_edge179

._crit_edge179:                                   ; preds = %339, %306
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #8
  br label %451

.lr.ph178:                                        ; preds = %306, %339
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %38) #8
  %310 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  %311 = load i32, ptr %310, align 4, !tbaa !9
  store i32 %311, ptr %38, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %39) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %40) #8
  invoke void @_ZN8VarStateC2E11InvalidType(ptr noundef nonnull align 8 dereferenceable(40) %40, i32 noundef 0)
          to label %312 unwind label %322

312:                                              ; preds = %.lr.ph178
  invoke void @_ZSt9make_pairIRj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.413") align 8 %39, ptr noundef nonnull align 4 dereferenceable(4) %38, ptr noundef nonnull align 8 dereferenceable(40) %40)
          to label %313 unwind label %324

313:                                              ; preds = %312
  %314 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %232, ptr noundef nonnull align 8 dereferenceable(48) %39)
          to label %315 unwind label %326

315:                                              ; preds = %313
  %.fca.1.extract21 = extractvalue { ptr, i8 } %314, 1
  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
  %316 = trunc i8 %.fca.1.extract21 to i1
  br i1 %316, label %339, label %317

317:                                              ; preds = %315
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %318 unwind label %330

318:                                              ; preds = %317
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %43) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_6vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %42, ptr noundef nonnull align 1 dereferenceable(1) %43) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull %42)
          to label %319 unwind label %332

319:                                              ; preds = %318
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #8
  %320 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %320, ptr noundef nonnull @.str.9)
          to label %321 unwind label %335

321:                                              ; preds = %319
  invoke void @__cxa_throw(ptr nonnull %320, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %519 unwind label %337

322:                                              ; preds = %.lr.ph178
  %323 = landingpad { ptr, i32 }
          cleanup
  br label %329

324:                                              ; preds = %312
  %325 = landingpad { ptr, i32 }
          cleanup
  br label %328

326:                                              ; preds = %313
  %327 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %39) #8
  br label %328

328:                                              ; preds = %326, %324
  %.pn142 = phi { ptr, i32 } [ %327, %326 ], [ %325, %324 ]
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %40) #8
  br label %329

329:                                              ; preds = %328, %322
  %.pn142.pn = phi { ptr, i32 } [ %.pn142, %328 ], [ %323, %322 ]
  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 %342

330:                                              ; preds = %317
  %331 = landingpad { ptr, i32 }
          cleanup
  br label %334

332:                                              ; preds = %318
  %333 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %43) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %41) #8
  br label %334

334:                                              ; preds = %332, %330
  %.pn145 = phi { ptr, i32 } [ %333, %332 ], [ %331, %330 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #8
  br label %342

335:                                              ; preds = %319
  %336 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %320) #8
  br label %342

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

339:                                              ; preds = %315
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #8
  %340 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %36) #8
  %341 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %37) #8
  br i1 %341, label %.lr.ph178, label %._crit_edge179

342:                                              ; preds = %337, %335, %334, %329
  %.pn147 = phi { ptr, i32 } [ %338, %337 ], [ %336, %335 ], [ %.pn145, %334 ], [ %.pn142.pn, %329 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %38) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #8
  br label %516

343:                                              ; preds = %230
  %344 = call noundef ptr @_ZN9ScopeType9opt_SplitEv(ptr noundef nonnull align 8 dereferenceable(240) %231)
  %.not128 = icmp eq ptr %344, null
  br i1 %.not128, label %451, label %345

345:                                              ; preds = %343
  %346 = load i8, ptr %344, align 8, !tbaa !63, !range !22, !noundef !23
  %347 = trunc nuw i8 %346 to i1
  br i1 %347, label %348, label %401

348:                                              ; preds = %345
  %349 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %350 unwind label %360

350:                                              ; preds = %348
  br i1 %349, label %351, label %362

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

354:                                              ; preds = %351
  %355 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %353, ptr noundef nonnull @.str.50)
          to label %356 unwind label %360

356:                                              ; preds = %354
  %357 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %355, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %358 unwind label %360

358:                                              ; preds = %356
  %359 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %357, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %362 unwind label %360

360:                                              ; preds = %411, %409, %407, %404, %401, %358, %356, %354, %351, %348
  %361 = landingpad { ptr, i32 }
          cleanup
  br label %516

362:                                              ; preds = %358, %350
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #8
  %363 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %178) #8
  store ptr %363, ptr %44, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #8
  %364 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %178) #8
  store ptr %364, ptr %45, align 8
  %365 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %45) #8
  br i1 %365, label %.lr.ph181, label %._crit_edge182

.lr.ph181:                                        ; preds = %362
  %366 = getelementptr inbounds i8, ptr %344, i64 104
  br label %367

._crit_edge182:                                   ; preds = %397, %362
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #8
  br label %413

367:                                              ; preds = %.lr.ph181, %397
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %46) #8
  %368 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %44) #8
  %369 = load i32, ptr %368, align 4, !tbaa !9
  store i32 %369, ptr %46, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %47) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %48) #8
  invoke void @_ZN8VarStateC2E11InvalidType(ptr noundef nonnull align 8 dereferenceable(40) %48, i32 noundef 0)
          to label %370 unwind label %380

370:                                              ; preds = %367
  invoke void @_ZSt9make_pairIRj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.413") align 8 %47, ptr noundef nonnull align 4 dereferenceable(4) %46, ptr noundef nonnull align 8 dereferenceable(40) %48)
          to label %371 unwind label %382

371:                                              ; preds = %370
  %372 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %366, ptr noundef nonnull align 8 dereferenceable(48) %47)
          to label %373 unwind label %384

373:                                              ; preds = %371
  %.fca.1.extract = extractvalue { ptr, i8 } %372, 1
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %47) #8
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %48) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %47) #8
  %374 = trunc i8 %.fca.1.extract to i1
  br i1 %374, label %397, label %375

375:                                              ; preds = %373
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %376 unwind label %388

376:                                              ; preds = %375
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %51) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_7vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %50, ptr noundef nonnull align 1 dereferenceable(1) %51) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull %50)
          to label %377 unwind label %390

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

379:                                              ; preds = %377
  invoke void @__cxa_throw(ptr nonnull %378, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %519 unwind label %395

380:                                              ; preds = %367
  %381 = landingpad { ptr, i32 }
          cleanup
  br label %387

382:                                              ; preds = %370
  %383 = landingpad { ptr, i32 }
          cleanup
  br label %386

384:                                              ; preds = %371
  %385 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %47) #8
  br label %386

386:                                              ; preds = %384, %382
  %.pn134 = phi { ptr, i32 } [ %385, %384 ], [ %383, %382 ]
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %48) #8
  br label %387

387:                                              ; preds = %386, %380
  %.pn134.pn = phi { ptr, i32 } [ %.pn134, %386 ], [ %381, %380 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %47) #8
  br label %400

388:                                              ; preds = %375
  %389 = landingpad { ptr, i32 }
          cleanup
  br label %392

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

392:                                              ; preds = %390, %388
  %.pn137 = phi { ptr, i32 } [ %391, %390 ], [ %389, %388 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #8
  br label %400

393:                                              ; preds = %377
  %394 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %378) #8
  br label %400

395:                                              ; preds = %379
  %396 = landingpad { ptr, i32 }
          cleanup
  br label %400

397:                                              ; preds = %373
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #8
  %398 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %44) #8
  %399 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %45) #8
  br i1 %399, label %367, label %._crit_edge182

400:                                              ; preds = %395, %393, %392, %387
  %.pn139 = phi { ptr, i32 } [ %396, %395 ], [ %394, %393 ], [ %.pn137, %392 ], [ %.pn134.pn, %387 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %46) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #8
  br label %516

401:                                              ; preds = %345
  %402 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %403 unwind label %360

403:                                              ; preds = %401
  br i1 %402, label %404, label %413

404:                                              ; preds = %403
  %405 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %406 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %405, ptr noundef nonnull @__func__._ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_)
          to label %407 unwind label %360

407:                                              ; preds = %404
  %408 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %406, ptr noundef nonnull @.str.51)
          to label %409 unwind label %360

409:                                              ; preds = %407
  %410 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %408, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %411 unwind label %360

411:                                              ; preds = %409
  %412 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %410, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %413 unwind label %360

413:                                              ; preds = %403, %411, %._crit_edge182
  %414 = getelementptr inbounds i8, ptr %344, i64 200
  %415 = call noundef zeroext i1 @_ZNKSt6vectorI8SplitArmSaIS0_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %414) #8
  br i1 %415, label %416, label %417

416:                                              ; preds = %413
  call void @__assert_fail(ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.7, i32 noundef 885, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_) #10
  unreachable

417:                                              ; preds = %413
  %418 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZNSt6vectorI8SplitArmSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %414) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %52) #8
  %419 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %178) #8
  store ptr %419, ptr %52, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %53) #8
  %420 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %178) #8
  store ptr %420, ptr %53, align 8
  %421 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(8) %53) #8
  br i1 %421, label %.lr.ph184, label %._crit_edge185

.lr.ph184:                                        ; preds = %417
  %422 = getelementptr inbounds i8, ptr %418, i64 8
  br label %423

._crit_edge185:                                   ; preds = %436, %417
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #8
  br label %451

423:                                              ; preds = %.lr.ph184, %436
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %54) #8
  %424 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %52) #8
  %425 = load i32, ptr %424, align 4, !tbaa !9
  store i32 %425, ptr %54, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %55) #8
  %426 = zext i32 %425 to i64
  %427 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorI8VarStateSaIS0_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %184, i64 noundef %426)
          to label %428 unwind label %440

428:                                              ; preds = %423
  invoke void @_ZSt9make_pairIRj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.413") align 8 %55, ptr noundef nonnull align 4 dereferenceable(4) %54, ptr noundef nonnull align 8 dereferenceable(40) %427)
          to label %429 unwind label %440

429:                                              ; preds = %428
  %430 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %422, ptr noundef nonnull align 8 dereferenceable(48) %55)
          to label %431 unwind label %442

431:                                              ; preds = %429
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %55) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %55) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %56) #8
  invoke void @_ZN8VarStateC2E11InvalidType(ptr noundef nonnull align 8 dereferenceable(40) %56, i32 noundef 0)
          to label %432 unwind label %445

432:                                              ; preds = %431
  %433 = load i32, ptr %54, align 4, !tbaa !9
  %434 = zext i32 %433 to i64
  %435 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorI8VarStateSaIS0_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %184, i64 noundef %434)
          to label %436 unwind label %447

436:                                              ; preds = %432
  %437 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZN8VarStateaSEOS_(ptr noundef nonnull align 8 dereferenceable(40) %435, ptr noundef nonnull align 8 dereferenceable(40) %56)
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %56) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %56) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %54) #8
  %438 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %52) #8
  %439 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %52, ptr noundef nonnull align 8 dereferenceable(8) %53) #8
  br i1 %439, label %423, label %._crit_edge185

440:                                              ; preds = %428, %423
  %441 = landingpad { ptr, i32 }
          cleanup
  br label %444

442:                                              ; preds = %429
  %443 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %55) #8
  br label %444

444:                                              ; preds = %442, %440
  %.pn129 = phi { ptr, i32 } [ %443, %442 ], [ %441, %440 ]
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %55) #8
  br label %450

445:                                              ; preds = %431
  %446 = landingpad { ptr, i32 }
          cleanup
  br label %449

447:                                              ; preds = %432
  %448 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %56) #8
  br label %449

449:                                              ; preds = %447, %445
  %.pn131 = phi { ptr, i32 } [ %448, %447 ], [ %446, %445 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %56) #8
  br label %450

450:                                              ; preds = %449, %444
  %.pn131.pn = phi { ptr, i32 } [ %.pn131, %449 ], [ %.pn129, %444 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %54) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %53) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %52) #8
  br label %516

451:                                              ; preds = %343, %._crit_edge185, %._crit_edge179
  %452 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %25)
  br label %218, !llvm.loop !69

453:                                              ; preds = %460
  %454 = landingpad { ptr, i32 }
          cleanup
  br label %516

.critedge:                                        ; preds = %220
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #8
  br label %.loopexit

.loopexit:                                        ; preds = %221, %.critedge
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #8
  call void @_ZNSt6vectorIjSaIjEE4rendEv(ptr dead_on_unwind nonnull writable sret(%"class.std::reverse_iterator") align 8 %57, ptr noundef nonnull align 8 dereferenceable(24) %73) #8
  %455 = call noundef zeroext i1 @_ZSteqIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEbRKSt16reverse_iteratorIT_ESB_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %57)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #8
  br i1 %455, label %456, label %468

456:                                              ; preds = %.loopexit
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %58) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %457 unwind label %461

457:                                              ; preds = %456
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #8
  store ptr %3, ptr %60, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_8vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %59, ptr noundef nonnull align 8 dereferenceable(8) %60) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef nonnull %59)
          to label %458 unwind label %463

458:                                              ; preds = %457
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #8
  %459 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %459, ptr noundef nonnull @.str.9)
          to label %460 unwind label %466

460:                                              ; preds = %458
  invoke void @__cxa_throw(ptr nonnull %459, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %519 unwind label %453

461:                                              ; preds = %456
  %462 = landingpad { ptr, i32 }
          cleanup
  br label %465

463:                                              ; preds = %457
  %464 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %58) #8
  br label %465

465:                                              ; preds = %463, %461
  %.pn125 = phi { ptr, i32 } [ %464, %463 ], [ %462, %461 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %58) #8
  br label %516

466:                                              ; preds = %458
  %467 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %459) #8
  br label %516

468:                                              ; preds = %.loopexit
  %469 = load i32, ptr %183, align 8, !tbaa !11
  %470 = zext i32 %469 to i64
  %471 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZNSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %141, i64 noundef %470)
          to label %472 unwind label %479

472:                                              ; preds = %468
  %473 = getelementptr inbounds i8, ptr %471, i64 16
  %474 = call noundef zeroext i1 @_ZNK9ScopeType9is_OwningEv(ptr noundef nonnull align 8 dereferenceable(240) %473)
  br i1 %474, label %488, label %475

475:                                              ; preds = %472
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %61) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %476 unwind label %481

476:                                              ; preds = %475
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %63) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_9vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef nonnull align 1 dereferenceable(1) %63) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull %62)
          to label %477 unwind label %483

477:                                              ; preds = %476
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #8
  %478 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %478, ptr noundef nonnull @.str.9)
          to label %.invoke188 unwind label %486

479:                                              ; preds = %.invoke188, %468
  %480 = landingpad { ptr, i32 }
          cleanup
  br label %516

481:                                              ; preds = %475
  %482 = landingpad { ptr, i32 }
          cleanup
  br label %485

483:                                              ; preds = %476
  %484 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %63) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %61) #8
  br label %485

485:                                              ; preds = %483, %481
  %.pn119 = phi { ptr, i32 } [ %484, %483 ], [ %482, %481 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %61) #8
  br label %516

486:                                              ; preds = %477
  %487 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %478) #8
  br label %516

488:                                              ; preds = %472
  %489 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN9ScopeType9as_OwningEv(ptr noundef nonnull align 8 dereferenceable(240) %473)
  %490 = load i8, ptr %489, align 8, !tbaa !15, !range !22, !noundef !23
  %491 = trunc nuw i8 %490 to i1
  br i1 %491, label %504, label %492

492:                                              ; preds = %488
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #8
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %493 unwind label %497

493:                                              ; preds = %492
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %66) #8
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %65, ptr noundef nonnull align 1 dereferenceable(1) %66) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %64, ptr noundef nonnull %65)
          to label %494 unwind label %499

494:                                              ; preds = %493
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %66) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #8
  %495 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %495, ptr noundef nonnull @.str.9)
          to label %.invoke188 unwind label %502

.invoke188:                                       ; preds = %477, %494
  %496 = phi ptr [ %495, %494 ], [ %478, %477 ]
  invoke void @__cxa_throw(ptr nonnull %496, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #9
          to label %.cont189 unwind label %479

.cont189:                                         ; preds = %.invoke188
  unreachable

497:                                              ; preds = %492
  %498 = landingpad { ptr, i32 }
          cleanup
  br label %501

499:                                              ; preds = %493
  %500 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %66) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %64) #8
  br label %501

501:                                              ; preds = %499, %497
  %.pn121 = phi { ptr, i32 } [ %500, %499 ], [ %498, %497 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #8
  br label %516

502:                                              ; preds = %494
  %503 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %495) #8
  br label %516

504:                                              ; preds = %488
  %505 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN9ScopeType9as_OwningEv(ptr noundef nonnull align 8 dereferenceable(240) %473)
  %506 = getelementptr inbounds i8, ptr %505, i64 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %68) #8
  %507 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %506) #8
  store ptr %507, ptr %68, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEC2IPjvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %67, ptr noundef nonnull align 8 dereferenceable(8) %68) #8
  %508 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %178) #8
  %509 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %178) #8
  %510 = load ptr, ptr %67, align 8
  %511 = invoke ptr @_ZNSt6vectorIjSaIjEE6insertIN9__gnu_cxx17__normal_iteratorIPjS1_EEvEES6_NS4_IPKjS1_EET_SA_(ptr noundef nonnull align 8 dereferenceable(24) %506, ptr %510, ptr %508, ptr %509)
          to label %512 unwind label %514

512:                                              ; preds = %504
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #8
  call void @_ZNSt6vectorIjSaIjEE8pop_backEv(ptr noundef nonnull align 8 dereferenceable(24) %73) #8
  %513 = getelementptr inbounds i8, ptr %143, i64 8
  store i8 1, ptr %513, align 8, !tbaa !71
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %5) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #8
  ret void

514:                                              ; preds = %504
  %515 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #8
  br label %516

516:                                              ; preds = %479, %485, %486, %501, %502, %514, %251, %360, %400, %450, %342, %293, %253, %466, %465, %453, %249
  %.pn154.pn.pn.pn = phi { ptr, i32 } [ %454, %453 ], [ %467, %466 ], [ %.pn125, %465 ], [ %250, %249 ], [ %252, %251 ], [ %.pn154, %293 ], [ %.pn147, %342 ], [ %254, %253 ], [ %.pn139, %400 ], [ %.pn131.pn, %450 ], [ %361, %360 ], [ %515, %514 ], [ %480, %479 ], [ %503, %502 ], [ %.pn121, %501 ], [ %487, %486 ], [ %.pn119, %485 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #8
  br label %517

517:                                              ; preds = %151, %157, %158, %173, %174, %516, %217, %139, %98
  %.pn170.pn = phi { ptr, i32 } [ %.pn170, %139 ], [ %99, %98 ], [ %152, %151 ], [ %175, %174 ], [ %.pn116, %173 ], [ %159, %158 ], [ %.pn, %157 ], [ %.pn159.pn, %217 ], [ %.pn154.pn.pn.pn, %516 ]
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %5) #8
  br label %518

518:                                              ; preds = %517, %96
  %.pn170.pn.pn = phi { ptr, i32 } [ %.pn170.pn, %517 ], [ %97, %96 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %5) #8
  resume { ptr, i32 } %.pn170.pn.pn

519:                                              ; preds = %460, %379, %321, %272
  unreachable
}

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_3vEEOT_"(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 @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_4vEEOT_"(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 dso_local noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEdeEv(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 @_ZN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEppEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEplEl(ptr dead_on_unwind noalias writable sret(%"class.std::reverse_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(8), i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZSt9make_pairIRj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS3_INS4_IT0_E4typeEE6__typeEEOS5_OSA_(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: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_5vEEOT_"(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 @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_6vEEOT_"(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 @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_7vEEOT_"(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 dso_local noundef zeroext i1 @_ZNKSt6vectorI8SplitArmSaIS0_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_8vEEOT_"(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 @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E3$_9vEEOT_"(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 @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS8_E4$_10vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local ptr @_ZNSt6vectorIjSaIjEE6insertIN9__gnu_cxx17__normal_iteratorIPjS1_EEvEES6_NS4_IPKjS1_EET_SA_(ptr noundef nonnull align 8 dereferenceable(24), ptr, ptr, ptr) local_unnamed_addr #4 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 = { 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 #6 = { 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 = { 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 #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 = !{!"int", !7, i64 0}
!11 = !{!12, !10, i64 8}
!12 = !{!"_ZTS11ScopeHandle", !6, i64 0, !10, i64 8}
!13 = !{!14, !6, i64 8}
!14 = !{!"_ZTSZN10MirBuilder9raise_allERK4Span11ScopeHandleRKS3_E3$_2", !6, i64 0, !6, i64 8, !6, i64 16}
!15 = !{!16, !17, i64 0}
!16 = !{!"_ZTSN9ScopeType11Data_OwningE", !17, i64 0, !18, i64 8}
!17 = !{!"bool", !7, i64 0}
!18 = !{!"_ZTSSt6vectorIjSaIjEE", !19, i64 0}
!19 = !{!"_ZTSSt12_Vector_baseIjSaIjEE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE12_Vector_implE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIjSaIjEE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!22 = !{i8 0, i8 2}
!23 = !{}
!24 = !{!25, !34, i64 264}
!25 = !{!"_ZTS10MirBuilder", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !10, i64 48, !17, i64 52, !26, i64 56, !17, i64 168, !28, i64 176, !30, i64 216, !30, i64 240, !34, i64 264, !35, i64 272, !43, i64 320, !18, i64 344, !12, i64 368, !47, i64 384, !51, i64 408}
!26 = !{!"_ZTSN3MIR6RValueE", !27, i64 0, !7, i64 8}
!27 = !{!"_ZTSN3MIR6RValue3TagE", !7, i64 0}
!28 = !{!"_ZTS8VarState", !29, i64 0, !7, i64 8}
!29 = !{!"_ZTSN8VarState3TagE", !7, i64 0}
!30 = !{!"_ZTSSt6vectorI8VarStateSaIS0_EE", !31, i64 0}
!31 = !{!"_ZTSSt12_Vector_baseI8VarStateSaIS0_EE", !32, i64 0}
!32 = !{!"_ZTSNSt12_Vector_baseI8VarStateSaIS0_EE12_Vector_implE", !33, i64 0}
!33 = !{!"_ZTSNSt12_Vector_baseI8VarStateSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!34 = !{!"long", !7, i64 0}
!35 = !{!"_ZTSSt3mapIjjSt4lessIjESaISt4pairIKjjEEE", !36, i64 0}
!36 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE", !37, i64 0}
!37 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKjjESt10_Select1stIS2_ESt4lessIjESaIS2_EE13_Rb_tree_implIS6_Lb1EEE", !38, i64 0, !40, i64 8}
!38 = !{!"_ZTSSt20_Rb_tree_key_compareISt4lessIjEE", !39, i64 0}
!39 = !{!"_ZTSSt4lessIjE"}
!40 = !{!"_ZTSSt15_Rb_tree_header", !41, i64 0, !34, i64 32}
!41 = !{!"_ZTSSt18_Rb_tree_node_base", !42, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!42 = !{!"_ZTSSt14_Rb_tree_color", !7, i64 0}
!43 = !{!"_ZTSSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE", !44, i64 0}
!44 = !{!"_ZTSSt12_Vector_baseIN10MirBuilder8ScopeDefESaIS1_EE", !45, i64 0}
!45 = !{!"_ZTSNSt12_Vector_baseIN10MirBuilder8ScopeDefESaIS1_EE12_Vector_implE", !46, i64 0}
!46 = !{!"_ZTSNSt12_Vector_baseIN10MirBuilder8ScopeDefESaIS1_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!47 = !{!"_ZTSSt6vectorISt4pairIN3HIR14PatternBinding4TypeEN3MIR6LValueEESaIS6_EE", !48, i64 0}
!48 = !{!"_ZTSSt12_Vector_baseISt4pairIN3HIR14PatternBinding4TypeEN3MIR6LValueEESaIS6_EE", !49, i64 0}
!49 = !{!"_ZTSNSt12_Vector_baseISt4pairIN3HIR14PatternBinding4TypeEN3MIR6LValueEESaIS6_EE12_Vector_implE", !50, i64 0}
!50 = !{!"_ZTSNSt12_Vector_baseISt4pairIN3HIR14PatternBinding4TypeEN3MIR6LValueEESaIS6_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!51 = !{!"_ZTSN3MIR6LValueE", !52, i64 0, !53, i64 8}
!52 = !{!"_ZTSN3MIR6LValue7StorageE", !34, i64 0}
!53 = !{!"_ZTSSt6vectorIN3MIR6LValue7WrapperESaIS2_EE", !54, i64 0}
!54 = !{!"_ZTSSt12_Vector_baseIN3MIR6LValue7WrapperESaIS2_EE", !55, i64 0}
!55 = !{!"_ZTSNSt12_Vector_baseIN3MIR6LValue7WrapperESaIS2_EE12_Vector_implE", !56, i64 0}
!56 = !{!"_ZTSNSt12_Vector_baseIN3MIR6LValue7WrapperESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!57 = !{!58, !17, i64 96}
!58 = !{!"_ZTSN9ScopeType9Data_LoopE", !59, i64 0, !59, i64 48, !17, i64 96, !62, i64 104, !10, i64 200, !18, i64 208}
!59 = !{!"_ZTSSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE", !60, i64 0}
!60 = !{!"_ZTSSt8_Rb_treeIjSt4pairIKj8VarStateESt10_Select1stIS3_ESt4lessIjESaIS3_EE", !61, i64 0}
!61 = !{!"_ZTSNSt8_Rb_treeIjSt4pairIKj8VarStateESt10_Select1stIS3_ESt4lessIjESaIS3_EE13_Rb_tree_implIS7_Lb1EEE", !38, i64 0, !40, i64 8}
!62 = !{!"_ZTS8SplitEnd", !59, i64 0, !59, i64 48}
!63 = !{!64, !17, i64 0}
!64 = !{!"_ZTSN9ScopeType10Data_SplitE", !17, i64 0, !62, i64 8, !62, i64 104, !65, i64 200}
!65 = !{!"_ZTSSt6vectorI8SplitArmSaIS0_EE", !66, i64 0}
!66 = !{!"_ZTSSt12_Vector_baseI8SplitArmSaIS0_EE", !67, i64 0}
!67 = !{!"_ZTSNSt12_Vector_baseI8SplitArmSaIS0_EE12_Vector_implE", !68, i64 0}
!68 = !{!"_ZTSNSt12_Vector_baseI8SplitArmSaIS0_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!69 = distinct !{!69, !70}
!70 = !{!"llvm.loop.mustprogress"}
!71 = !{!72, !17, i64 8}
!72 = !{!"_ZTSN10MirBuilder8ScopeDefE", !6, i64 0, !17, i64 8, !73, i64 16}
!73 = !{!"_ZTS9ScopeType", !74, i64 0, !7, i64 8}
!74 = !{!"_ZTSN9ScopeType3TagE", !7, i64 0}


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