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

; 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.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.407 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.408" = type { ptr }
%"class.std::reverse_iterator" = type { %"class.__gnu_cxx::__normal_iterator" }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.409" = type { ptr }
%struct.Span = type { ptr }
%class.anon.410 = type { ptr }
%"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.415 = type { ptr }
%class.anon.416 = type { ptr }
%class.anon.417 = type { ptr }
%class.anon.418 = 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.9 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb = external hidden unnamed_addr constant [18 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [42 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: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) #4 align 2

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

; 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: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) #4 align 2

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

; Function Attrs: nounwind
declare void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #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 uwtable
define dso_local void @_ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb(ptr noundef nonnull align 8 dereferenceable(440) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(12) %3, i1 noundef zeroext %4) #4 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca ptr, align 8
  %10 = alloca i8, align 1
  %11 = alloca %class.TraceLog, align 8
  %12 = alloca %"class.std::function", align 8
  %13 = alloca %class.anon.407, align 8
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca %"class.__gnu_cxx::__normal_iterator.408", align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator.408", align 8
  %19 = alloca ptr, align 8
  %20 = alloca %"struct.MIR::LValue", align 8
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i8, align 1
  %24 = alloca %"class.std::reverse_iterator", align 8
  %25 = alloca %"class.std::reverse_iterator", align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %29 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %30 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %31 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %32 = alloca %"class.__gnu_cxx::__normal_iterator.409", align 8
  %33 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %34 = alloca %"class.std::reverse_iterator", align 8
  %35 = alloca %struct.Span, align 8
  %36 = alloca %"class.std::function", align 8
  %37 = alloca %class.anon.410, align 8
  %38 = alloca i8, align 1
  %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 %"struct.std::pair.411", align 8
  %44 = alloca %"struct.std::pair.413", align 8
  %45 = alloca %class.VarState, align 8
  %46 = alloca { ptr, i8 }, align 8
  %47 = alloca %struct.Span, align 8
  %48 = alloca %"class.std::function", align 8
  %49 = alloca %class.anon.415, align 8
  %50 = alloca ptr, align 8
  %51 = alloca %"struct.std::pair.411", align 8
  %52 = alloca %"struct.std::pair.413", align 8
  %53 = alloca %class.VarState, align 8
  %54 = alloca { ptr, i8 }, align 8
  %55 = alloca %struct.Span, align 8
  %56 = alloca %"class.std::function", align 8
  %57 = alloca %class.anon.416, align 8
  %58 = alloca ptr, align 8
  %59 = alloca %"struct.std::pair.413", align 8
  %60 = alloca %class.VarState, align 8
  %61 = alloca %"struct.std::pair.411", align 8
  %62 = alloca %class.VarState, align 8
  %63 = alloca %struct.Span, align 8
  %64 = alloca %"class.std::function", align 8
  %65 = alloca %class.anon.417, align 8
  %66 = alloca %struct.Span, align 8
  %67 = alloca %"class.std::function", align 8
  %68 = alloca %class.anon.418, align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store ptr %1, ptr %7, align 8, !tbaa !5
  store ptr %2, ptr %8, align 8, !tbaa !5
  store ptr %3, ptr %9, align 8, !tbaa !5
  %69 = zext i1 %4 to i8
  store i8 %69, ptr %10, align 1, !tbaa !9
  %70 = load ptr, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr %11) #8
  %71 = call noundef zeroext i1 @_Z13debug_enabledv()
  %72 = zext i1 %71 to i64
  %73 = select i1 %71, ptr @__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb, ptr null
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #8
  %74 = getelementptr inbounds %class.anon.407, ptr %13, i32 0, i32 0
  %75 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %75, ptr %74, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(8) %13) #8
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40) %11, ptr noundef %73, ptr noundef %12)
          to label %76 unwind label %88

76:                                               ; preds = %5
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #8
  %77 = load ptr, ptr %8, align 8, !tbaa !5
  %78 = getelementptr inbounds %"struct.MIR::LValue", ptr %77, i32 0, i32 1
  store ptr %78, ptr %16, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #8
  %79 = load ptr, ptr %16, align 8, !tbaa !5
  %80 = call ptr @_ZNKSt6vectorIN3MIR6LValue7WrapperESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %79) #8
  %81 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.408", ptr %17, i32 0, i32 0
  store ptr %80, ptr %81, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #8
  %82 = load ptr, ptr %16, align 8, !tbaa !5
  %83 = call ptr @_ZNKSt6vectorIN3MIR6LValue7WrapperESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %82) #8
  %84 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.408", ptr %18, i32 0, i32 0
  store ptr %83, ptr %84, align 8
  br label %85

85:                                               ; preds = %121, %76
  %86 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3MIR6LValue7WrapperESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %18) #8
  br i1 %86, label %92, label %87

87:                                               ; preds = %85
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  br label %124

88:                                               ; preds = %5
  %89 = landingpad { ptr, i32 }
          cleanup
  %90 = extractvalue { ptr, i32 } %89, 0
  store ptr %90, ptr %14, align 8
  %91 = extractvalue { ptr, i32 } %89, 1
  store i32 %91, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  br label %854

92:                                               ; preds = %85
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  %93 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3MIR6LValue7WrapperESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  store ptr %93, ptr %19, align 8, !tbaa !5
  %94 = load ptr, ptr %19, align 8, !tbaa !5
  %95 = invoke noundef zeroext i1 @_ZNK3MIR6LValue7Wrapper8is_IndexEv(ptr noundef nonnull align 4 dereferenceable(4) %94)
          to label %96 unwind label %107

96:                                               ; preds = %92
  br i1 %95, label %97, label %120

97:                                               ; preds = %96
  %98 = load ptr, ptr %7, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #8
  %99 = load ptr, ptr %19, align 8, !tbaa !5
  %100 = invoke noundef i32 @_ZNK3MIR6LValue7Wrapper8as_IndexEv(ptr noundef nonnull align 4 dereferenceable(4) %99)
          to label %101 unwind label %111

101:                                              ; preds = %97
  invoke void @_ZN3MIR6LValue9new_LocalEj(ptr dead_on_unwind writable sret(%"struct.MIR::LValue") align 8 %20, i32 noundef %100)
          to label %102 unwind label %111

102:                                              ; preds = %101
  %103 = load ptr, ptr %9, align 8, !tbaa !5
  %104 = load i8, ptr %10, align 1, !tbaa !9, !range !11, !noundef !12
  %105 = trunc i8 %104 to i1
  invoke void @_ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb(ptr noundef nonnull align 8 dereferenceable(440) %70, ptr noundef nonnull align 8 dereferenceable(8) %98, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(12) %103, i1 noundef zeroext %105)
          to label %106 unwind label %115

106:                                              ; preds = %102
  call void @_ZN3MIR6LValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #8
  br label %120

107:                                              ; preds = %92
  %108 = landingpad { ptr, i32 }
          cleanup
  %109 = extractvalue { ptr, i32 } %108, 0
  store ptr %109, ptr %14, align 8
  %110 = extractvalue { ptr, i32 } %108, 1
  store i32 %110, ptr %15, align 4
  br label %123

111:                                              ; preds = %101, %97
  %112 = landingpad { ptr, i32 }
          cleanup
  %113 = extractvalue { ptr, i32 } %112, 0
  store ptr %113, ptr %14, align 8
  %114 = extractvalue { ptr, i32 } %112, 1
  store i32 %114, ptr %15, align 4
  br label %119

115:                                              ; preds = %102
  %116 = landingpad { ptr, i32 }
          cleanup
  %117 = extractvalue { ptr, i32 } %116, 0
  store ptr %117, ptr %14, align 8
  %118 = extractvalue { ptr, i32 } %116, 1
  store i32 %118, ptr %15, align 4
  call void @_ZN3MIR6LValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #8
  br label %119

119:                                              ; preds = %115, %111
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #8
  br label %123

120:                                              ; preds = %106, %96
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  br label %121

121:                                              ; preds = %120
  %122 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3MIR6LValue7WrapperESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #8
  br label %85

123:                                              ; preds = %119, %107
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #8
  br label %853

124:                                              ; preds = %87
  %125 = load ptr, ptr %8, align 8, !tbaa !5
  %126 = getelementptr inbounds %"struct.MIR::LValue", ptr %125, i32 0, i32 0
  %127 = invoke noundef zeroext i1 @_ZNK3MIR6LValue7Storage8is_LocalEv(ptr noundef nonnull align 8 dereferenceable(8) %126)
          to label %128 unwind label %130

128:                                              ; preds = %124
  br i1 %127, label %134, label %129

129:                                              ; preds = %128
  store i32 1, ptr %21, align 4
  br label %847

130:                                              ; preds = %124
  %131 = landingpad { ptr, i32 }
          cleanup
  %132 = extractvalue { ptr, i32 } %131, 0
  store ptr %132, ptr %14, align 8
  %133 = extractvalue { ptr, i32 } %131, 1
  store i32 %133, ptr %15, align 4
  br label %853

134:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #8
  %135 = load ptr, ptr %8, align 8, !tbaa !5
  %136 = getelementptr inbounds %"struct.MIR::LValue", ptr %135, i32 0, i32 0
  %137 = invoke noundef i32 @_ZNK3MIR6LValue7Storage8as_LocalEv(ptr noundef nonnull align 8 dereferenceable(8) %136)
          to label %138 unwind label %190

138:                                              ; preds = %134
  store i32 %137, ptr %22, align 4, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 1, ptr %23) #8
  %139 = load i32, ptr %22, align 4, !tbaa !13
  %140 = zext i32 %139 to i64
  %141 = getelementptr inbounds %class.MirBuilder, ptr %70, i32 0, i32 14
  %142 = load i64, ptr %141, align 8, !tbaa !15
  %143 = icmp uge i64 %140, %142
  %144 = zext i1 %143 to i8
  store i8 %144, ptr %23, align 1, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  %145 = getelementptr inbounds %class.MirBuilder, ptr %70, i32 0, i32 17
  call void @_ZNSt6vectorIjSaIjEE6rbeginEv(ptr dead_on_unwind writable sret(%"class.std::reverse_iterator") align 8 %24, ptr noundef nonnull align 8 dereferenceable(24) %145) #8
  br label %146

146:                                              ; preds = %340, %138
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  %147 = getelementptr inbounds %class.MirBuilder, ptr %70, i32 0, i32 17
  call void @_ZNSt6vectorIjSaIjEE4rendEv(ptr dead_on_unwind writable sret(%"class.std::reverse_iterator") align 8 %25, ptr noundef nonnull align 8 dereferenceable(24) %147) #8
  %148 = invoke noundef zeroext i1 @_ZStneIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEbRKSt16reverse_iteratorIT_ESB_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %149 unwind label %194

149:                                              ; preds = %146
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  br i1 %148, label %150, label %342

150:                                              ; preds = %149
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #8
  %151 = getelementptr inbounds %class.MirBuilder, ptr %70, i32 0, i32 16
  %152 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %153 unwind label %198

153:                                              ; preds = %150
  %154 = load i32, ptr %152, align 4, !tbaa !13
  %155 = zext i32 %154 to i64
  %156 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZNSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %151, i64 noundef %155)
          to label %157 unwind label %198

157:                                              ; preds = %153
  store ptr %156, ptr %26, align 8, !tbaa !5
  %158 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %159 unwind label %198

159:                                              ; preds = %157
  %160 = load i32, ptr %158, align 4, !tbaa !13
  %161 = load ptr, ptr %9, align 8, !tbaa !5
  %162 = getelementptr inbounds %class.ScopeHandle, ptr %161, i32 0, i32 1
  %163 = load i32, ptr %162, align 8, !tbaa !53
  %164 = icmp eq i32 %160, %163
  br i1 %164, label %165, label %205

165:                                              ; preds = %159
  %166 = load i8, ptr %10, align 1, !tbaa !9, !range !11, !noundef !12
  %167 = trunc i8 %166 to i1
  br i1 %167, label %205, label %168

168:                                              ; preds = %165
  br label %169

169:                                              ; preds = %168
  %170 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %171 unwind label %198

171:                                              ; preds = %169
  br i1 %170, label %172, label %202

172:                                              ; preds = %171
  %173 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !13
  %174 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %173, ptr noundef @__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb)
          to label %175 unwind label %198

175:                                              ; preds = %172
  %176 = load ptr, ptr %8, align 8, !tbaa !5
  %177 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8) %174, ptr noundef nonnull align 8 dereferenceable(32) %176)
          to label %178 unwind label %198

178:                                              ; preds = %175
  %179 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %177, ptr noundef @.str.21)
          to label %180 unwind label %198

180:                                              ; preds = %178
  %181 = load ptr, ptr %9, align 8, !tbaa !5
  %182 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK11ScopeHandle(ptr noundef nonnull align 8 dereferenceable(8) %179, ptr noundef nonnull align 8 dereferenceable(12) %181)
          to label %183 unwind label %198

183:                                              ; preds = %180
  %184 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %182, ptr noundef @.str.22)
          to label %185 unwind label %198

185:                                              ; preds = %183
  %186 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %184, ptr noundef @_ZSt3decRSt8ios_base)
          to label %187 unwind label %198

187:                                              ; preds = %185
  %188 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %186, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %189 unwind label %198

189:                                              ; preds = %187
  br label %202

190:                                              ; preds = %134
  %191 = landingpad { ptr, i32 }
          cleanup
  %192 = extractvalue { ptr, i32 } %191, 0
  store ptr %192, ptr %14, align 8
  %193 = extractvalue { ptr, i32 } %191, 1
  store i32 %193, ptr %15, align 4
  br label %852

194:                                              ; preds = %146
  %195 = landingpad { ptr, i32 }
          cleanup
  %196 = extractvalue { ptr, i32 } %195, 0
  store ptr %196, ptr %14, align 8
  %197 = extractvalue { ptr, i32 } %195, 1
  store i32 %197, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  br label %851

198:                                              ; preds = %335, %329, %327, %325, %322, %320, %317, %315, %312, %309, %300, %205, %187, %185, %183, %180, %178, %175, %172, %169, %157, %153, %150
  %199 = landingpad { ptr, i32 }
          cleanup
  %200 = extractvalue { ptr, i32 } %199, 0
  store ptr %200, ptr %14, align 8
  %201 = extractvalue { ptr, i32 } %199, 1
  store i32 %201, ptr %15, align 4
  br label %341

202:                                              ; preds = %189, %171
  br label %203

203:                                              ; preds = %202
  br label %204

204:                                              ; preds = %203
  br label %205

205:                                              ; preds = %204, %165, %159
  %206 = load ptr, ptr %26, align 8, !tbaa !5
  %207 = getelementptr inbounds %"struct.MirBuilder::ScopeDef", ptr %206, i32 0, i32 2
  %208 = invoke noundef i32 @_ZNK9ScopeType3tagEv(ptr noundef nonnull align 8 dereferenceable(240) %207)
          to label %209 unwind label %198

209:                                              ; preds = %205
  %210 = icmp eq i32 %208, 1
  br i1 %210, label %211, label %299

211:                                              ; preds = %209
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  %212 = load ptr, ptr %26, align 8, !tbaa !5
  %213 = getelementptr inbounds %"struct.MirBuilder::ScopeDef", ptr %212, i32 0, i32 2
  %214 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN9ScopeType9as_OwningEv(ptr noundef nonnull align 8 dereferenceable(240) %213)
          to label %215 unwind label %278

215:                                              ; preds = %211
  store ptr %214, ptr %27, align 8, !tbaa !5
  %216 = load ptr, ptr %27, align 8, !tbaa !5
  %217 = load ptr, ptr %27, align 8, !tbaa !5
  %218 = getelementptr inbounds %"struct.ScopeType::Data_Owning", ptr %217, i32 0, i32 0
  %219 = load i8, ptr %218, align 8, !tbaa !54, !range !11, !noundef !12
  %220 = trunc i8 %219 to i1
  %221 = zext i1 %220 to i32
  %222 = load i8, ptr %23, align 1, !tbaa !9, !range !11, !noundef !12
  %223 = trunc i8 %222 to i1
  %224 = zext i1 %223 to i32
  %225 = icmp eq i32 %221, %224
  br i1 %225, label %226, label %293

226:                                              ; preds = %215
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #8
  %227 = load ptr, ptr %27, align 8, !tbaa !5
  %228 = getelementptr inbounds %"struct.ScopeType::Data_Owning", ptr %227, i32 0, i32 1
  %229 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %228) #8
  %230 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %29, i32 0, i32 0
  store ptr %229, ptr %230, align 8
  %231 = load ptr, ptr %27, align 8, !tbaa !5
  %232 = getelementptr inbounds %"struct.ScopeType::Data_Owning", ptr %231, i32 0, i32 1
  %233 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %232) #8
  %234 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %30, i32 0, i32 0
  store ptr %233, ptr %234, align 8
  %235 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %29, i32 0, i32 0
  %236 = load ptr, ptr %235, align 8
  %237 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %30, i32 0, i32 0
  %238 = load ptr, ptr %237, align 8
  %239 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEjET_S7_S7_RKT0_(ptr %236, ptr %238, ptr noundef nonnull align 4 dereferenceable(4) %22)
          to label %240 unwind label %282

240:                                              ; preds = %226
  %241 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %28, i32 0, i32 0
  store ptr %239, ptr %241, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #8
  %242 = load ptr, ptr %27, align 8, !tbaa !5
  %243 = getelementptr inbounds %"struct.ScopeType::Data_Owning", ptr %242, i32 0, i32 1
  %244 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %243) #8
  %245 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %31, i32 0, i32 0
  store ptr %244, ptr %245, align 8
  %246 = 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) %31) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #8
  br i1 %246, label %247, label %289

247:                                              ; preds = %240
  %248 = load ptr, ptr %27, align 8, !tbaa !5
  %249 = getelementptr inbounds %"struct.ScopeType::Data_Owning", ptr %248, i32 0, i32 1
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEC2IPjvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 8 dereferenceable(8) %28) #8
  %250 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.409", ptr %32, i32 0, i32 0
  %251 = load ptr, ptr %250, align 8
  %252 = invoke ptr @_ZNSt6vectorIjSaIjEE5eraseEN9__gnu_cxx17__normal_iteratorIPKjS1_EE(ptr noundef nonnull align 8 dereferenceable(24) %249, ptr %251)
          to label %253 unwind label %282

253:                                              ; preds = %247
  %254 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %33, i32 0, i32 0
  store ptr %252, ptr %254, align 8
  br label %255

255:                                              ; preds = %253
  %256 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %257 unwind label %282

257:                                              ; preds = %255
  br i1 %256, label %258, label %286

258:                                              ; preds = %257
  %259 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !13
  %260 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %259, ptr noundef @__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb)
          to label %261 unwind label %282

261:                                              ; preds = %258
  %262 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %260, ptr noundef @.str.23)
          to label %263 unwind label %282

263:                                              ; preds = %261
  %264 = load i32, ptr %22, align 4, !tbaa !13
  %265 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %262, i32 noundef %264)
          to label %266 unwind label %282

266:                                              ; preds = %263
  %267 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %265, ptr noundef @.str.24)
          to label %268 unwind label %282

268:                                              ; preds = %266
  %269 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %270 unwind label %282

270:                                              ; preds = %268
  %271 = load i32, ptr %269, align 4, !tbaa !13
  %272 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %267, i32 noundef %271)
          to label %273 unwind label %282

273:                                              ; preds = %270
  %274 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %272, ptr noundef @_ZSt3decRSt8ios_base)
          to label %275 unwind label %282

275:                                              ; preds = %273
  %276 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %274, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %277 unwind label %282

277:                                              ; preds = %275
  br label %286

278:                                              ; preds = %211
  %279 = landingpad { ptr, i32 }
          cleanup
  %280 = extractvalue { ptr, i32 } %279, 0
  store ptr %280, ptr %14, align 8
  %281 = extractvalue { ptr, i32 } %279, 1
  store i32 %281, ptr %15, align 4
  br label %298

282:                                              ; preds = %275, %273, %270, %268, %266, %263, %261, %258, %255, %247, %226
  %283 = landingpad { ptr, i32 }
          cleanup
  %284 = extractvalue { ptr, i32 } %283, 0
  store ptr %284, ptr %14, align 8
  %285 = extractvalue { ptr, i32 } %283, 1
  store i32 %285, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  br label %298

286:                                              ; preds = %277, %257
  br label %287

287:                                              ; preds = %286
  br label %288

288:                                              ; preds = %287
  store i32 5, ptr %21, align 4
  br label %290

289:                                              ; preds = %240
  store i32 0, ptr %21, align 4
  br label %290

290:                                              ; preds = %289, %288
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #8
  %291 = load i32, ptr %21, align 4
  switch i32 %291, label %295 [
    i32 0, label %292
  ]

292:                                              ; preds = %290
  br label %294

293:                                              ; preds = %215
  br label %294

294:                                              ; preds = %293, %292
  store i32 0, ptr %21, align 4
  br label %295

295:                                              ; preds = %294, %290
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  %296 = load i32, ptr %21, align 4
  switch i32 %296, label %338 [
    i32 0, label %297
  ]

297:                                              ; preds = %295
  br label %300

298:                                              ; preds = %282, %278
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  br label %341

299:                                              ; preds = %209
  br label %300

300:                                              ; preds = %299, %297
  %301 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %302 unwind label %198

302:                                              ; preds = %300
  %303 = load i32, ptr %301, align 4, !tbaa !13
  %304 = load ptr, ptr %9, align 8, !tbaa !5
  %305 = getelementptr inbounds %class.ScopeHandle, ptr %304, i32 0, i32 1
  %306 = load i32, ptr %305, align 8, !tbaa !53
  %307 = icmp eq i32 %303, %306
  br i1 %307, label %308, label %335

308:                                              ; preds = %302
  br label %309

309:                                              ; preds = %308
  %310 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %311 unwind label %198

311:                                              ; preds = %309
  br i1 %310, label %312, label %332

312:                                              ; preds = %311
  %313 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !13
  %314 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %313, ptr noundef @__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb)
          to label %315 unwind label %198

315:                                              ; preds = %312
  %316 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %314, ptr noundef @.str.25)
          to label %317 unwind label %198

317:                                              ; preds = %315
  %318 = load ptr, ptr %8, align 8, !tbaa !5
  %319 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8) %316, ptr noundef nonnull align 8 dereferenceable(32) %318)
          to label %320 unwind label %198

320:                                              ; preds = %317
  %321 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %319, ptr noundef @.str.26)
          to label %322 unwind label %198

322:                                              ; preds = %320
  %323 = load ptr, ptr %9, align 8, !tbaa !5
  %324 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK11ScopeHandle(ptr noundef nonnull align 8 dereferenceable(8) %321, ptr noundef nonnull align 8 dereferenceable(12) %323)
          to label %325 unwind label %198

325:                                              ; preds = %322
  %326 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %324, ptr noundef @.str.22)
          to label %327 unwind label %198

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 %198

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 %198

331:                                              ; preds = %329
  br label %332

332:                                              ; preds = %331, %311
  br label %333

333:                                              ; preds = %332
  br label %334

334:                                              ; preds = %333
  store i32 1, ptr %21, align 4
  br label %338

335:                                              ; preds = %302
  %336 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %337 unwind label %198

337:                                              ; preds = %335
  store i32 0, ptr %21, align 4
  br label %338

338:                                              ; preds = %337, %334, %295
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  %339 = load i32, ptr %21, align 4
  switch i32 %339, label %846 [
    i32 0, label %340
    i32 5, label %342
  ]

340:                                              ; preds = %338
  br label %146, !llvm.loop !56

341:                                              ; preds = %298, %198
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  br label %851

342:                                              ; preds = %338, %149
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #8
  %343 = getelementptr inbounds %class.MirBuilder, ptr %70, i32 0, i32 17
  call void @_ZNSt6vectorIjSaIjEE4rendEv(ptr dead_on_unwind writable sret(%"class.std::reverse_iterator") align 8 %34, ptr noundef nonnull align 8 dereferenceable(24) %343) #8
  %344 = invoke noundef zeroext i1 @_ZSteqIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEbRKSt16reverse_iteratorIT_ESB_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %34)
          to label %345 unwind label %355

345:                                              ; preds = %342
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br i1 %344, label %346, label %378

346:                                              ; preds = %345
  br label %347

347:                                              ; preds = %346
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #8
  %348 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %348)
          to label %349 unwind label %359

349:                                              ; preds = %347
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #8
  %350 = getelementptr inbounds %class.anon.410, ptr %37, i32 0, i32 0
  %351 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %351, ptr %350, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %36, ptr noundef nonnull align 8 dereferenceable(8) %37) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef %36)
          to label %352 unwind label %363

352:                                              ; preds = %349
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  %353 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %353, ptr noundef @.str.9)
          to label %354 unwind label %368

354:                                              ; preds = %352
  invoke void @__cxa_throw(ptr %353, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %860 unwind label %372

355:                                              ; preds = %342
  %356 = landingpad { ptr, i32 }
          cleanup
  %357 = extractvalue { ptr, i32 } %356, 0
  store ptr %357, ptr %14, align 8
  %358 = extractvalue { ptr, i32 } %356, 1
  store i32 %358, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #8
  br label %851

359:                                              ; preds = %347
  %360 = landingpad { ptr, i32 }
          cleanup
  %361 = extractvalue { ptr, i32 } %360, 0
  store ptr %361, ptr %14, align 8
  %362 = extractvalue { ptr, i32 } %360, 1
  store i32 %362, ptr %15, align 4
  br label %367

363:                                              ; preds = %349
  %364 = landingpad { ptr, i32 }
          cleanup
  %365 = extractvalue { ptr, i32 } %364, 0
  store ptr %365, ptr %14, align 8
  %366 = extractvalue { ptr, i32 } %364, 1
  store i32 %366, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %35) #8
  br label %367

367:                                              ; preds = %363, %359
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #8
  br label %851

368:                                              ; preds = %352
  %369 = landingpad { ptr, i32 }
          cleanup
  %370 = extractvalue { ptr, i32 } %369, 0
  store ptr %370, ptr %14, align 8
  %371 = extractvalue { ptr, i32 } %369, 1
  store i32 %371, ptr %15, align 4
  call void @__cxa_free_exception(ptr %353) #8
  br label %851

372:                                              ; preds = %354
  %373 = landingpad { ptr, i32 }
          cleanup
  %374 = extractvalue { ptr, i32 } %373, 0
  store ptr %374, ptr %14, align 8
  %375 = extractvalue { ptr, i32 } %373, 1
  store i32 %375, ptr %15, align 4
  br label %851

376:                                              ; No predecessors!
  br label %377

377:                                              ; preds = %376
  store i32 1, ptr %21, align 4
  br label %846

378:                                              ; preds = %345
  call void @llvm.lifetime.start.p0(i64 1, ptr %38) #8
  store i8 0, ptr %38, align 1, !tbaa !9
  %379 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %380 unwind label %392

380:                                              ; preds = %378
  %381 = load i32, ptr %379, align 4, !tbaa !13
  %382 = load ptr, ptr %9, align 8, !tbaa !5
  %383 = getelementptr inbounds %class.ScopeHandle, ptr %382, i32 0, i32 1
  %384 = load i32, ptr %383, align 8, !tbaa !53
  %385 = icmp eq i32 %381, %384
  br i1 %385, label %386, label %398

386:                                              ; preds = %380
  %387 = load i8, ptr %10, align 1, !tbaa !9, !range !11, !noundef !12
  %388 = trunc i8 %387 to i1
  br i1 %388, label %389, label %396

389:                                              ; preds = %386
  %390 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %391 unwind label %392

391:                                              ; preds = %389
  br label %397

392:                                              ; preds = %829, %817, %398, %389, %378
  %393 = landingpad { ptr, i32 }
          cleanup
  %394 = extractvalue { ptr, i32 } %393, 0
  store ptr %394, ptr %14, align 8
  %395 = extractvalue { ptr, i32 } %393, 1
  store i32 %395, ptr %15, align 4
  br label %850

396:                                              ; preds = %386
  br label %397

397:                                              ; preds = %396, %391
  store i8 1, ptr %38, align 1, !tbaa !9
  br label %401

398:                                              ; preds = %380
  %399 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %400 unwind label %392

400:                                              ; preds = %398
  br label %401

401:                                              ; preds = %400, %397
  br label %402

402:                                              ; preds = %819, %401
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #8
  %403 = getelementptr inbounds %class.MirBuilder, ptr %70, 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) %403) #8
  %404 = invoke noundef zeroext i1 @_ZStneIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEbRKSt16reverse_iteratorIT_ESB_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %39)
          to label %405 unwind label %440

405:                                              ; preds = %402
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  br i1 %404, label %406, label %821

406:                                              ; preds = %405
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #8
  %407 = getelementptr inbounds %class.MirBuilder, ptr %70, i32 0, i32 16
  %408 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %409 unwind label %444

409:                                              ; preds = %406
  %410 = load i32, ptr %408, align 4, !tbaa !13
  %411 = zext i32 %410 to i64
  %412 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZNSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %407, i64 noundef %411)
          to label %413 unwind label %444

413:                                              ; preds = %409
  store ptr %412, ptr %40, align 8, !tbaa !5
  br label %414

414:                                              ; preds = %413
  %415 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %416 unwind label %444

416:                                              ; preds = %414
  br i1 %415, label %417, label %448

417:                                              ; preds = %416
  %418 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !13
  %419 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %418, ptr noundef @__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb)
          to label %420 unwind label %444

420:                                              ; preds = %417
  %421 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %419, ptr noundef @.str.27)
          to label %422 unwind label %444

422:                                              ; preds = %420
  %423 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %424 unwind label %444

424:                                              ; preds = %422
  %425 = load i32, ptr %423, align 4, !tbaa !13
  %426 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %421, i32 noundef %425)
          to label %427 unwind label %444

427:                                              ; preds = %424
  %428 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %426, ptr noundef @.str.28)
          to label %429 unwind label %444

429:                                              ; preds = %427
  %430 = load ptr, ptr %40, align 8, !tbaa !5
  %431 = getelementptr inbounds %"struct.MirBuilder::ScopeDef", ptr %430, i32 0, i32 2
  %432 = invoke noundef ptr @_ZNK9ScopeType7tag_strEv(ptr noundef nonnull align 8 dereferenceable(240) %431)
          to label %433 unwind label %444

433:                                              ; preds = %429
  %434 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %428, ptr noundef %432)
          to label %435 unwind label %444

435:                                              ; preds = %433
  %436 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %434, ptr noundef @_ZSt3decRSt8ios_base)
          to label %437 unwind label %444

437:                                              ; preds = %435
  %438 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %436, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %439 unwind label %444

439:                                              ; preds = %437
  br label %448

440:                                              ; preds = %402
  %441 = landingpad { ptr, i32 }
          cleanup
  %442 = extractvalue { ptr, i32 } %441, 0
  store ptr %442, ptr %14, align 8
  %443 = extractvalue { ptr, i32 } %441, 1
  store i32 %443, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #8
  br label %850

444:                                              ; preds = %459, %450, %437, %435, %433, %429, %427, %424, %422, %420, %417, %414, %409, %406
  %445 = landingpad { ptr, i32 }
          cleanup
  %446 = extractvalue { ptr, i32 } %445, 0
  store ptr %446, ptr %14, align 8
  %447 = extractvalue { ptr, i32 } %445, 1
  store i32 %447, ptr %15, align 4
  br label %820

448:                                              ; preds = %439, %416
  br label %449

449:                                              ; preds = %448
  br label %450

450:                                              ; preds = %449
  %451 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %452 unwind label %444

452:                                              ; preds = %450
  %453 = load i32, ptr %451, align 4, !tbaa !13
  %454 = load ptr, ptr %9, align 8, !tbaa !5
  %455 = getelementptr inbounds %class.ScopeHandle, ptr %454, i32 0, i32 1
  %456 = load i32, ptr %455, align 8, !tbaa !53
  %457 = icmp eq i32 %453, %456
  br i1 %457, label %458, label %459

458:                                              ; preds = %452
  store i8 1, ptr %38, align 1, !tbaa !9
  br label %459

459:                                              ; preds = %458, %452
  %460 = load ptr, ptr %40, align 8, !tbaa !5
  %461 = getelementptr inbounds %"struct.MirBuilder::ScopeDef", ptr %460, i32 0, i32 2
  %462 = invoke noundef i32 @_ZNK9ScopeType3tagEv(ptr noundef nonnull align 8 dereferenceable(240) %461)
          to label %463 unwind label %444

463:                                              ; preds = %459
  %464 = icmp eq i32 %462, 1
  br i1 %464, label %465, label %516

465:                                              ; preds = %463
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #8
  %466 = load ptr, ptr %40, align 8, !tbaa !5
  %467 = getelementptr inbounds %"struct.MirBuilder::ScopeDef", ptr %466, i32 0, i32 2
  %468 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZN9ScopeType9as_OwningEv(ptr noundef nonnull align 8 dereferenceable(240) %467)
          to label %469 unwind label %505

469:                                              ; preds = %465
  store ptr %468, ptr %41, align 8, !tbaa !5
  %470 = load ptr, ptr %41, align 8, !tbaa !5
  %471 = load i8, ptr %38, align 1, !tbaa !9, !range !11, !noundef !12
  %472 = trunc i8 %471 to i1
  br i1 %472, label %473, label %512

473:                                              ; preds = %469
  %474 = load ptr, ptr %41, align 8, !tbaa !5
  %475 = getelementptr inbounds %"struct.ScopeType::Data_Owning", ptr %474, i32 0, i32 0
  %476 = load i8, ptr %475, align 8, !tbaa !54, !range !11, !noundef !12
  %477 = trunc i8 %476 to i1
  %478 = zext i1 %477 to i32
  %479 = load i8, ptr %23, align 1, !tbaa !9, !range !11, !noundef !12
  %480 = trunc i8 %479 to i1
  %481 = zext i1 %480 to i32
  %482 = icmp eq i32 %478, %481
  br i1 %482, label %483, label %512

483:                                              ; preds = %473
  %484 = load ptr, ptr %41, align 8, !tbaa !5
  %485 = getelementptr inbounds %"struct.ScopeType::Data_Owning", ptr %484, i32 0, i32 1
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %485, ptr noundef nonnull align 4 dereferenceable(4) %22)
          to label %486 unwind label %505

486:                                              ; preds = %483
  br label %487

487:                                              ; preds = %486
  %488 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %489 unwind label %505

489:                                              ; preds = %487
  br i1 %488, label %490, label %509

490:                                              ; preds = %489
  %491 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !13
  %492 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %491, ptr noundef @__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb)
          to label %493 unwind label %505

493:                                              ; preds = %490
  %494 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %492, ptr noundef @.str.29)
          to label %495 unwind label %505

495:                                              ; preds = %493
  %496 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %497 unwind label %505

497:                                              ; preds = %495
  %498 = load i32, ptr %496, align 4, !tbaa !13
  %499 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %494, i32 noundef %498)
          to label %500 unwind label %505

500:                                              ; preds = %497
  %501 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %499, ptr noundef @_ZSt3decRSt8ios_base)
          to label %502 unwind label %505

502:                                              ; preds = %500
  %503 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %501, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %504 unwind label %505

504:                                              ; preds = %502
  br label %509

505:                                              ; preds = %502, %500, %497, %495, %493, %490, %487, %483, %465
  %506 = landingpad { ptr, i32 }
          cleanup
  %507 = extractvalue { ptr, i32 } %506, 0
  store ptr %507, ptr %14, align 8
  %508 = extractvalue { ptr, i32 } %506, 1
  store i32 %508, ptr %15, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  br label %820

509:                                              ; preds = %504, %489
  br label %510

510:                                              ; preds = %509
  br label %511

511:                                              ; preds = %510
  store i32 1, ptr %21, align 4
  br label %513

512:                                              ; preds = %473, %469
  store i32 0, ptr %21, align 4
  br label %513

513:                                              ; preds = %512, %511
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #8
  %514 = load i32, ptr %21, align 4
  switch i32 %514, label %814 [
    i32 0, label %515
  ]

515:                                              ; preds = %513
  br label %813

516:                                              ; preds = %463
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #8
  %517 = load ptr, ptr %40, align 8, !tbaa !5
  %518 = getelementptr inbounds %"struct.MirBuilder::ScopeDef", ptr %517, i32 0, i32 2
  %519 = invoke noundef ptr @_ZN9ScopeType8opt_LoopEv(ptr noundef nonnull align 8 dereferenceable(240) %518)
          to label %520 unwind label %547

520:                                              ; preds = %516
  store ptr %519, ptr %42, align 8, !tbaa !5
  %521 = load ptr, ptr %42, align 8, !tbaa !5
  %522 = icmp ne ptr %521, null
  br i1 %522, label %523, label %626

523:                                              ; preds = %520
  %524 = load ptr, ptr %42, align 8, !tbaa !5
  %525 = getelementptr inbounds %"struct.ScopeType::Data_Loop", ptr %524, i32 0, i32 2
  %526 = load i8, ptr %525, align 8, !tbaa !58, !range !11, !noundef !12
  %527 = trunc i8 %526 to i1
  br i1 %527, label %528, label %608

528:                                              ; preds = %523
  br label %529

529:                                              ; preds = %528
  %530 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %531 unwind label %547

531:                                              ; preds = %529
  br i1 %530, label %532, label %551

532:                                              ; preds = %531
  %533 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !13
  %534 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %533, ptr noundef @__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb)
          to label %535 unwind label %547

535:                                              ; preds = %532
  %536 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %534, ptr noundef @.str.30)
          to label %537 unwind label %547

537:                                              ; preds = %535
  %538 = load ptr, ptr %8, align 8, !tbaa !5
  %539 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8) %536, ptr noundef nonnull align 8 dereferenceable(32) %538)
          to label %540 unwind label %547

540:                                              ; preds = %537
  %541 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %539, ptr noundef @.str.31)
          to label %542 unwind label %547

542:                                              ; preds = %540
  %543 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %541, ptr noundef @_ZSt3decRSt8ios_base)
          to label %544 unwind label %547

544:                                              ; preds = %542
  %545 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %543, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %546 unwind label %547

546:                                              ; preds = %544
  br label %551

547:                                              ; preds = %619, %617, %615, %612, %609, %544, %542, %540, %537, %535, %532, %529, %516
  %548 = landingpad { ptr, i32 }
          cleanup
  %549 = extractvalue { ptr, i32 } %548, 0
  store ptr %549, ptr %14, align 8
  %550 = extractvalue { ptr, i32 } %548, 1
  store i32 %550, ptr %15, align 4
  br label %812

551:                                              ; preds = %546, %531
  br label %552

552:                                              ; preds = %551
  br label %553

553:                                              ; preds = %552
  call void @llvm.lifetime.start.p0(i64 16, ptr %43) #8
  %554 = load ptr, ptr %42, align 8, !tbaa !5
  %555 = getelementptr inbounds %"struct.ScopeType::Data_Loop", ptr %554, i32 0, i32 3
  %556 = getelementptr inbounds %struct.SplitEnd, ptr %555, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 48, ptr %44) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr %45) #8
  invoke void @_ZN8VarStateC2E11InvalidType(ptr noundef nonnull align 8 dereferenceable(40) %45, i32 noundef 0)
          to label %557 unwind label %573

557:                                              ; preds = %553
  invoke void @_ZSt9make_pairIRKj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind writable sret(%"struct.std::pair.413") align 8 %44, ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 8 dereferenceable(40) %45)
          to label %558 unwind label %577

558:                                              ; preds = %557
  %559 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %556, ptr noundef nonnull align 8 dereferenceable(48) %44)
          to label %560 unwind label %581

560:                                              ; preds = %558
  store { ptr, i8 } %559, ptr %46, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %43, ptr align 8 %46, i64 9, i1 false)
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %44) #8
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %45) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %44) #8
  br label %561

561:                                              ; preds = %560
  %562 = getelementptr inbounds %"struct.std::pair.411", ptr %43, i32 0, i32 1
  %563 = load i8, ptr %562, align 8, !tbaa !64, !range !11, !noundef !12
  %564 = trunc i8 %563 to i1
  br i1 %564, label %604, label %565

565:                                              ; preds = %561
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #8
  %566 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %566)
          to label %567 unwind label %587

567:                                              ; preds = %565
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #8
  %568 = getelementptr inbounds %class.anon.415, ptr %49, i32 0, i32 0
  %569 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %569, ptr %568, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %48, ptr noundef nonnull align 8 dereferenceable(8) %49) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef %48)
          to label %570 unwind label %591

570:                                              ; preds = %567
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  %571 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %571, ptr noundef @.str.9)
          to label %572 unwind label %596

572:                                              ; preds = %570
  invoke void @__cxa_throw(ptr %571, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %860 unwind label %600

573:                                              ; preds = %553
  %574 = landingpad { ptr, i32 }
          cleanup
  %575 = extractvalue { ptr, i32 } %574, 0
  store ptr %575, ptr %14, align 8
  %576 = extractvalue { ptr, i32 } %574, 1
  store i32 %576, ptr %15, align 4
  br label %586

577:                                              ; preds = %557
  %578 = landingpad { ptr, i32 }
          cleanup
  %579 = extractvalue { ptr, i32 } %578, 0
  store ptr %579, ptr %14, align 8
  %580 = extractvalue { ptr, i32 } %578, 1
  store i32 %580, ptr %15, align 4
  br label %585

581:                                              ; preds = %558
  %582 = landingpad { ptr, i32 }
          cleanup
  %583 = extractvalue { ptr, i32 } %582, 0
  store ptr %583, ptr %14, align 8
  %584 = extractvalue { ptr, i32 } %582, 1
  store i32 %584, ptr %15, align 4
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %44) #8
  br label %585

585:                                              ; preds = %581, %577
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %45) #8
  br label %586

586:                                              ; preds = %585, %573
  call void @llvm.lifetime.end.p0(i64 40, ptr %45) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %44) #8
  br label %607

587:                                              ; preds = %565
  %588 = landingpad { ptr, i32 }
          cleanup
  %589 = extractvalue { ptr, i32 } %588, 0
  store ptr %589, ptr %14, align 8
  %590 = extractvalue { ptr, i32 } %588, 1
  store i32 %590, ptr %15, align 4
  br label %595

591:                                              ; preds = %567
  %592 = landingpad { ptr, i32 }
          cleanup
  %593 = extractvalue { ptr, i32 } %592, 0
  store ptr %593, ptr %14, align 8
  %594 = extractvalue { ptr, i32 } %592, 1
  store i32 %594, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %48) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %47) #8
  br label %595

595:                                              ; preds = %591, %587
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #8
  br label %607

596:                                              ; preds = %570
  %597 = landingpad { ptr, i32 }
          cleanup
  %598 = extractvalue { ptr, i32 } %597, 0
  store ptr %598, ptr %14, align 8
  %599 = extractvalue { ptr, i32 } %597, 1
  store i32 %599, ptr %15, align 4
  call void @__cxa_free_exception(ptr %571) #8
  br label %607

600:                                              ; preds = %572
  %601 = landingpad { ptr, i32 }
          cleanup
  %602 = extractvalue { ptr, i32 } %601, 0
  store ptr %602, ptr %14, align 8
  %603 = extractvalue { ptr, i32 } %601, 1
  store i32 %603, ptr %15, align 4
  br label %607

604:                                              ; preds = %561
  br label %605

605:                                              ; preds = %604
  br label %606

606:                                              ; preds = %605
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #8
  br label %625

607:                                              ; preds = %600, %596, %595, %586
  call void @llvm.lifetime.end.p0(i64 16, ptr %43) #8
  br label %812

608:                                              ; preds = %523
  br label %609

609:                                              ; preds = %608
  %610 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %611 unwind label %547

611:                                              ; preds = %609
  br i1 %610, label %612, label %622

612:                                              ; preds = %611
  %613 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !13
  %614 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %613, ptr noundef @__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb)
          to label %615 unwind label %547

615:                                              ; preds = %612
  %616 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %614, ptr noundef @.str.32)
          to label %617 unwind label %547

617:                                              ; preds = %615
  %618 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %616, ptr noundef @_ZSt3decRSt8ios_base)
          to label %619 unwind label %547

619:                                              ; preds = %617
  %620 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %618, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %621 unwind label %547

621:                                              ; preds = %619
  br label %622

622:                                              ; preds = %621, %611
  br label %623

623:                                              ; preds = %622
  br label %624

624:                                              ; preds = %623
  br label %625

625:                                              ; preds = %624, %606
  br label %811

626:                                              ; preds = %520
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #8
  %627 = load ptr, ptr %40, align 8, !tbaa !5
  %628 = getelementptr inbounds %"struct.MirBuilder::ScopeDef", ptr %627, i32 0, i32 2
  %629 = invoke noundef ptr @_ZN9ScopeType9opt_SplitEv(ptr noundef nonnull align 8 dereferenceable(240) %628)
          to label %630 unwind label %657

630:                                              ; preds = %626
  store ptr %629, ptr %50, align 8, !tbaa !5
  %631 = load ptr, ptr %50, align 8, !tbaa !5
  %632 = icmp ne ptr %631, null
  br i1 %632, label %633, label %785

633:                                              ; preds = %630
  %634 = load ptr, ptr %50, align 8, !tbaa !5
  %635 = getelementptr inbounds %"struct.ScopeType::Data_Split", ptr %634, i32 0, i32 0
  %636 = load i8, ptr %635, align 8, !tbaa !67, !range !11, !noundef !12
  %637 = trunc i8 %636 to i1
  br i1 %637, label %638, label %718

638:                                              ; preds = %633
  br label %639

639:                                              ; preds = %638
  %640 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %641 unwind label %657

641:                                              ; preds = %639
  br i1 %640, label %642, label %661

642:                                              ; preds = %641
  %643 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !13
  %644 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %643, ptr noundef @__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb)
          to label %645 unwind label %657

645:                                              ; preds = %642
  %646 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %644, ptr noundef @.str.30)
          to label %647 unwind label %657

647:                                              ; preds = %645
  %648 = load ptr, ptr %8, align 8, !tbaa !5
  %649 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8) %646, ptr noundef nonnull align 8 dereferenceable(32) %648)
          to label %650 unwind label %657

650:                                              ; preds = %647
  %651 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %649, ptr noundef @.str.31)
          to label %652 unwind label %657

652:                                              ; preds = %650
  %653 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %651, ptr noundef @_ZSt3decRSt8ios_base)
          to label %654 unwind label %657

654:                                              ; preds = %652
  %655 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %653, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %656 unwind label %657

656:                                              ; preds = %654
  br label %661

657:                                              ; preds = %793, %729, %727, %725, %722, %719, %654, %652, %650, %647, %645, %642, %639, %626
  %658 = landingpad { ptr, i32 }
          cleanup
  %659 = extractvalue { ptr, i32 } %658, 0
  store ptr %659, ptr %14, align 8
  %660 = extractvalue { ptr, i32 } %658, 1
  store i32 %660, ptr %15, align 4
  br label %810

661:                                              ; preds = %656, %641
  br label %662

662:                                              ; preds = %661
  br label %663

663:                                              ; preds = %662
  call void @llvm.lifetime.start.p0(i64 16, ptr %51) #8
  %664 = load ptr, ptr %50, align 8, !tbaa !5
  %665 = getelementptr inbounds %"struct.ScopeType::Data_Split", ptr %664, i32 0, i32 2
  %666 = getelementptr inbounds %struct.SplitEnd, ptr %665, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 48, ptr %52) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr %53) #8
  invoke void @_ZN8VarStateC2E11InvalidType(ptr noundef nonnull align 8 dereferenceable(40) %53, i32 noundef 0)
          to label %667 unwind label %683

667:                                              ; preds = %663
  invoke void @_ZSt9make_pairIRKj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind writable sret(%"struct.std::pair.413") align 8 %52, ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 8 dereferenceable(40) %53)
          to label %668 unwind label %687

668:                                              ; preds = %667
  %669 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %666, ptr noundef nonnull align 8 dereferenceable(48) %52)
          to label %670 unwind label %691

670:                                              ; preds = %668
  store { ptr, i8 } %669, ptr %54, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %51, ptr align 8 %54, i64 9, i1 false)
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %52) #8
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %53) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %52) #8
  br label %671

671:                                              ; preds = %670
  %672 = getelementptr inbounds %"struct.std::pair.411", ptr %51, i32 0, i32 1
  %673 = load i8, ptr %672, align 8, !tbaa !64, !range !11, !noundef !12
  %674 = trunc i8 %673 to i1
  br i1 %674, label %714, label %675

675:                                              ; preds = %671
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #8
  %676 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %676)
          to label %677 unwind label %697

677:                                              ; preds = %675
  call void @llvm.lifetime.start.p0(i64 8, ptr %57) #8
  %678 = getelementptr inbounds %class.anon.416, ptr %57, i32 0, i32 0
  %679 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %679, ptr %678, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %56, ptr noundef nonnull align 8 dereferenceable(8) %57) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef %56)
          to label %680 unwind label %701

680:                                              ; preds = %677
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  %681 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %681, ptr noundef @.str.9)
          to label %682 unwind label %706

682:                                              ; preds = %680
  invoke void @__cxa_throw(ptr %681, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %860 unwind label %710

683:                                              ; preds = %663
  %684 = landingpad { ptr, i32 }
          cleanup
  %685 = extractvalue { ptr, i32 } %684, 0
  store ptr %685, ptr %14, align 8
  %686 = extractvalue { ptr, i32 } %684, 1
  store i32 %686, ptr %15, align 4
  br label %696

687:                                              ; preds = %667
  %688 = landingpad { ptr, i32 }
          cleanup
  %689 = extractvalue { ptr, i32 } %688, 0
  store ptr %689, ptr %14, align 8
  %690 = extractvalue { ptr, i32 } %688, 1
  store i32 %690, ptr %15, align 4
  br label %695

691:                                              ; preds = %668
  %692 = landingpad { ptr, i32 }
          cleanup
  %693 = extractvalue { ptr, i32 } %692, 0
  store ptr %693, ptr %14, align 8
  %694 = extractvalue { ptr, i32 } %692, 1
  store i32 %694, ptr %15, align 4
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %52) #8
  br label %695

695:                                              ; preds = %691, %687
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %53) #8
  br label %696

696:                                              ; preds = %695, %683
  call void @llvm.lifetime.end.p0(i64 40, ptr %53) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %52) #8
  br label %717

697:                                              ; preds = %675
  %698 = landingpad { ptr, i32 }
          cleanup
  %699 = extractvalue { ptr, i32 } %698, 0
  store ptr %699, ptr %14, align 8
  %700 = extractvalue { ptr, i32 } %698, 1
  store i32 %700, ptr %15, align 4
  br label %705

701:                                              ; preds = %677
  %702 = landingpad { ptr, i32 }
          cleanup
  %703 = extractvalue { ptr, i32 } %702, 0
  store ptr %703, ptr %14, align 8
  %704 = extractvalue { ptr, i32 } %702, 1
  store i32 %704, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %57) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %55) #8
  br label %705

705:                                              ; preds = %701, %697
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #8
  br label %717

706:                                              ; preds = %680
  %707 = landingpad { ptr, i32 }
          cleanup
  %708 = extractvalue { ptr, i32 } %707, 0
  store ptr %708, ptr %14, align 8
  %709 = extractvalue { ptr, i32 } %707, 1
  store i32 %709, ptr %15, align 4
  call void @__cxa_free_exception(ptr %681) #8
  br label %717

710:                                              ; preds = %682
  %711 = landingpad { ptr, i32 }
          cleanup
  %712 = extractvalue { ptr, i32 } %711, 0
  store ptr %712, ptr %14, align 8
  %713 = extractvalue { ptr, i32 } %711, 1
  store i32 %713, ptr %15, align 4
  br label %717

714:                                              ; preds = %671
  br label %715

715:                                              ; preds = %714
  br label %716

716:                                              ; preds = %715
  call void @llvm.lifetime.end.p0(i64 16, ptr %51) #8
  br label %735

717:                                              ; preds = %710, %706, %705, %696
  call void @llvm.lifetime.end.p0(i64 16, ptr %51) #8
  br label %810

718:                                              ; preds = %633
  br label %719

719:                                              ; preds = %718
  %720 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %721 unwind label %657

721:                                              ; preds = %719
  br i1 %720, label %722, label %732

722:                                              ; preds = %721
  %723 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !13
  %724 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %723, ptr noundef @__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb)
          to label %725 unwind label %657

725:                                              ; preds = %722
  %726 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %724, ptr noundef @.str.33)
          to label %727 unwind label %657

727:                                              ; preds = %725
  %728 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %726, ptr noundef @_ZSt3decRSt8ios_base)
          to label %729 unwind label %657

729:                                              ; preds = %727
  %730 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %728, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %731 unwind label %657

731:                                              ; preds = %729
  br label %732

732:                                              ; preds = %731, %721
  br label %733

733:                                              ; preds = %732
  br label %734

734:                                              ; preds = %733
  br label %735

735:                                              ; preds = %734, %716
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #8
  %736 = load ptr, ptr %50, align 8, !tbaa !5
  %737 = getelementptr inbounds %"struct.ScopeType::Data_Split", ptr %736, i32 0, i32 3
  %738 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZNSt6vectorI8SplitArmSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %737) #8
  store ptr %738, ptr %58, align 8, !tbaa !5
  %739 = load ptr, ptr %58, align 8, !tbaa !5
  %740 = getelementptr inbounds %struct.SplitArm, ptr %739, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 48, ptr %59) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr %60) #8
  %741 = load ptr, ptr %7, align 8, !tbaa !5
  %742 = load i32, ptr %22, align 4, !tbaa !13
  %743 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10MirBuilder14get_slot_stateERK4SpanjNS_8SlotTypeEj(ptr noundef nonnull align 8 dereferenceable(440) %70, ptr noundef nonnull align 8 dereferenceable(8) %741, i32 noundef %742, i32 noundef 0, i32 noundef 0)
          to label %744 unwind label %761

744:                                              ; preds = %735
  invoke void @_ZNK8VarState5cloneEv(ptr dead_on_unwind writable sret(%class.VarState) align 8 %60, ptr noundef nonnull align 8 dereferenceable(40) %743)
          to label %745 unwind label %761

745:                                              ; preds = %744
  invoke void @_ZSt9make_pairIRKj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind writable sret(%"struct.std::pair.413") align 8 %59, ptr noundef nonnull align 4 dereferenceable(4) %22, ptr noundef nonnull align 8 dereferenceable(40) %60)
          to label %746 unwind label %765

746:                                              ; preds = %745
  %747 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %740, ptr noundef nonnull align 8 dereferenceable(48) %59)
          to label %748 unwind label %769

748:                                              ; preds = %746
  %749 = getelementptr inbounds { ptr, i8 }, ptr %61, i32 0, i32 0
  %750 = extractvalue { ptr, i8 } %747, 0
  store ptr %750, ptr %749, align 8
  %751 = getelementptr inbounds { ptr, i8 }, ptr %61, i32 0, i32 1
  %752 = extractvalue { ptr, i8 } %747, 1
  store i8 %752, ptr %751, align 8
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %59) #8
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %60) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %59) #8
  call void @llvm.lifetime.start.p0(i64 40, ptr %62) #8
  invoke void @_ZN8VarStateC2E11InvalidType(ptr noundef nonnull align 8 dereferenceable(40) %62, i32 noundef 0)
          to label %753 unwind label %775

753:                                              ; preds = %748
  %754 = getelementptr inbounds %class.MirBuilder, ptr %70, i32 0, i32 13
  %755 = load i32, ptr %22, align 4, !tbaa !13
  %756 = zext i32 %755 to i64
  %757 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorI8VarStateSaIS0_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %754, i64 noundef %756)
          to label %758 unwind label %779

758:                                              ; preds = %753
  %759 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZN8VarStateaSEOS_(ptr noundef nonnull align 8 dereferenceable(40) %757, ptr noundef nonnull align 8 dereferenceable(40) %62)
          to label %760 unwind label %779

760:                                              ; preds = %758
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %62) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %62) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  br label %809

761:                                              ; preds = %744, %735
  %762 = landingpad { ptr, i32 }
          cleanup
  %763 = extractvalue { ptr, i32 } %762, 0
  store ptr %763, ptr %14, align 8
  %764 = extractvalue { ptr, i32 } %762, 1
  store i32 %764, ptr %15, align 4
  br label %774

765:                                              ; preds = %745
  %766 = landingpad { ptr, i32 }
          cleanup
  %767 = extractvalue { ptr, i32 } %766, 0
  store ptr %767, ptr %14, align 8
  %768 = extractvalue { ptr, i32 } %766, 1
  store i32 %768, ptr %15, align 4
  br label %773

769:                                              ; preds = %746
  %770 = landingpad { ptr, i32 }
          cleanup
  %771 = extractvalue { ptr, i32 } %770, 0
  store ptr %771, ptr %14, align 8
  %772 = extractvalue { ptr, i32 } %770, 1
  store i32 %772, ptr %15, align 4
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %59) #8
  br label %773

773:                                              ; preds = %769, %765
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %60) #8
  br label %774

774:                                              ; preds = %773, %761
  call void @llvm.lifetime.end.p0(i64 40, ptr %60) #8
  call void @llvm.lifetime.end.p0(i64 48, ptr %59) #8
  br label %784

775:                                              ; preds = %748
  %776 = landingpad { ptr, i32 }
          cleanup
  %777 = extractvalue { ptr, i32 } %776, 0
  store ptr %777, ptr %14, align 8
  %778 = extractvalue { ptr, i32 } %776, 1
  store i32 %778, ptr %15, align 4
  br label %783

779:                                              ; preds = %758, %753
  %780 = landingpad { ptr, i32 }
          cleanup
  %781 = extractvalue { ptr, i32 } %780, 0
  store ptr %781, ptr %14, align 8
  %782 = extractvalue { ptr, i32 } %780, 1
  store i32 %782, ptr %15, align 4
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %62) #8
  br label %783

783:                                              ; preds = %779, %775
  call void @llvm.lifetime.end.p0(i64 40, ptr %62) #8
  br label %784

784:                                              ; preds = %783, %774
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #8
  br label %810

785:                                              ; preds = %630
  br label %786

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

788:                                              ; preds = %786
  call void @llvm.lifetime.start.p0(i64 8, ptr %65) #8
  %789 = getelementptr inbounds %class.anon.417, ptr %65, i32 0, i32 0
  %790 = load ptr, ptr %40, align 8, !tbaa !5
  store ptr %790, ptr %789, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %64, ptr noundef nonnull align 8 dereferenceable(8) %65) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %63, ptr noundef %64)
          to label %791 unwind label %798

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

793:                                              ; preds = %791
  invoke void @__cxa_throw(ptr %792, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %860 unwind label %657

794:                                              ; preds = %786
  %795 = landingpad { ptr, i32 }
          cleanup
  %796 = extractvalue { ptr, i32 } %795, 0
  store ptr %796, ptr %14, align 8
  %797 = extractvalue { ptr, i32 } %795, 1
  store i32 %797, ptr %15, align 4
  br label %802

798:                                              ; preds = %788
  %799 = landingpad { ptr, i32 }
          cleanup
  %800 = extractvalue { ptr, i32 } %799, 0
  store ptr %800, ptr %14, align 8
  %801 = extractvalue { ptr, i32 } %799, 1
  store i32 %801, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %64) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %65) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %63) #8
  br label %802

802:                                              ; preds = %798, %794
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #8
  br label %810

803:                                              ; preds = %791
  %804 = landingpad { ptr, i32 }
          cleanup
  %805 = extractvalue { ptr, i32 } %804, 0
  store ptr %805, ptr %14, align 8
  %806 = extractvalue { ptr, i32 } %804, 1
  store i32 %806, ptr %15, align 4
  call void @__cxa_free_exception(ptr %792) #8
  br label %810

807:                                              ; No predecessors!
  br label %808

808:                                              ; preds = %807
  br label %809

809:                                              ; preds = %808, %760
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  br label %811

810:                                              ; preds = %803, %802, %784, %717, %657
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #8
  br label %812

811:                                              ; preds = %809, %625
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  br label %813

812:                                              ; preds = %810, %607, %547
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #8
  br label %820

813:                                              ; preds = %811, %515
  store i32 0, ptr %21, align 4
  br label %814

814:                                              ; preds = %813, %513
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  %815 = load i32, ptr %21, align 4
  switch i32 %815, label %845 [
    i32 0, label %816
  ]

816:                                              ; preds = %814
  br label %817

817:                                              ; preds = %816
  %818 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %24)
          to label %819 unwind label %392

819:                                              ; preds = %817
  br label %402, !llvm.loop !73

820:                                              ; preds = %812, %505, %444
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #8
  br label %850

821:                                              ; preds = %405
  br label %822

822:                                              ; preds = %821
  call void @llvm.lifetime.start.p0(i64 8, ptr %66) #8
  %823 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef nonnull align 8 dereferenceable(8) %823)
          to label %824 unwind label %830

824:                                              ; preds = %822
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #8
  %825 = getelementptr inbounds %class.anon.418, ptr %68, i32 0, i32 0
  %826 = load ptr, ptr %8, align 8, !tbaa !5
  store ptr %826, ptr %825, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(8) %68) #8
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %66, ptr noundef %67)
          to label %827 unwind label %834

827:                                              ; preds = %824
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #8
  %828 = call ptr @__cxa_allocate_exception(i64 16) #8
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %828, ptr noundef @.str.9)
          to label %829 unwind label %839

829:                                              ; preds = %827
  invoke void @__cxa_throw(ptr %828, ptr @_ZTISt13runtime_error, ptr @_ZNSt13runtime_errorD1Ev) #9
          to label %860 unwind label %392

830:                                              ; preds = %822
  %831 = landingpad { ptr, i32 }
          cleanup
  %832 = extractvalue { ptr, i32 } %831, 0
  store ptr %832, ptr %14, align 8
  %833 = extractvalue { ptr, i32 } %831, 1
  store i32 %833, ptr %15, align 4
  br label %838

834:                                              ; preds = %824
  %835 = landingpad { ptr, i32 }
          cleanup
  %836 = extractvalue { ptr, i32 } %835, 0
  store ptr %836, ptr %14, align 8
  %837 = extractvalue { ptr, i32 } %835, 1
  store i32 %837, ptr %15, align 4
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #8
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %66) #8
  br label %838

838:                                              ; preds = %834, %830
  call void @llvm.lifetime.end.p0(i64 8, ptr %66) #8
  br label %850

839:                                              ; preds = %827
  %840 = landingpad { ptr, i32 }
          cleanup
  %841 = extractvalue { ptr, i32 } %840, 0
  store ptr %841, ptr %14, align 8
  %842 = extractvalue { ptr, i32 } %840, 1
  store i32 %842, ptr %15, align 4
  call void @__cxa_free_exception(ptr %828) #8
  br label %850

843:                                              ; No predecessors!
  br label %844

844:                                              ; preds = %843
  store i32 0, ptr %21, align 4
  br label %845

845:                                              ; preds = %844, %814
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #8
  br label %846

846:                                              ; preds = %845, %377, %338
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %847

847:                                              ; preds = %846, %129
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %11) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr %11) #8
  %848 = load i32, ptr %21, align 4
  switch i32 %848, label %860 [
    i32 0, label %849
    i32 1, label %849
  ]

849:                                              ; preds = %847, %847
  ret void

850:                                              ; preds = %839, %838, %820, %440, %392
  call void @llvm.lifetime.end.p0(i64 1, ptr %38) #8
  br label %851

851:                                              ; preds = %850, %372, %368, %367, %355, %341, %194
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr %23) #8
  br label %852

852:                                              ; preds = %851, %190
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %853

853:                                              ; preds = %852, %130, %123
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %11) #8
  br label %854

854:                                              ; preds = %853, %88
  call void @llvm.lifetime.end.p0(i64 40, ptr %11) #8
  br label %855

855:                                              ; preds = %854
  %856 = load ptr, ptr %14, align 8
  %857 = load i32, ptr %15, align 4
  %858 = insertvalue { ptr, i32 } poison, ptr %856, 0
  %859 = insertvalue { ptr, i32 } %858, i32 %857, 1
  resume { ptr, i32 } %859

860:                                              ; preds = %847, %829, %793, %682, %572, %354
  unreachable
}

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_0vEEOT_"(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 dso_local ptr @_ZNKSt6vectorIN3MIR6LValue7WrapperESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) #1 align 2

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

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

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

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

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

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

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

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

; 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 uwtable
declare dso_local ptr @_ZNSt6vectorIjSaIjEE5eraseEN9__gnu_cxx17__normal_iteratorIPKjS1_EE(ptr noundef nonnull align 8 dereferenceable(24), ptr) #4 align 2

; 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 hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_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 dso_local noundef ptr @_ZNK9ScopeType7tag_strEv(ptr noundef nonnull align 8 dereferenceable(240)) #4 align 2

; 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 @_ZSt9make_pairIRKj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.413") align 8, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(40)) #4

; Function Attrs: 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 hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_2vEEOT_"(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 dso_local noundef ptr @_ZN9ScopeType9opt_SplitEv(ptr noundef nonnull align 8 dereferenceable(240)) #1 align 2

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_3vEEOT_"(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 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 @_ZNK10MirBuilder14get_slot_stateERK4SpanjNS_8SlotTypeEj(ptr noundef nonnull align 8 dereferenceable(440), ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, i32 noundef, i32 noundef) #4 align 2

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

; Function Attrs: mustprogress 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 hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_4vEEOT_"(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 @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_5vEEOT_"(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 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 = { nounwind }
attributes #9 = { noreturn }

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

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


; 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.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.407 = type { ptr }
%"class.__gnu_cxx::__normal_iterator.408" = type { ptr }
%"class.std::reverse_iterator" = type { %"class.__gnu_cxx::__normal_iterator" }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.409" = type { ptr }
%struct.Span = type { ptr }
%class.anon.410 = 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.415 = type { ptr }
%class.anon.416 = type { ptr }
%class.anon.417 = type { ptr }
%class.anon.418 = type { ptr }

@g_debug_indent_level = external local_unnamed_addr global i32, align 4
@.str.9 = external hidden unnamed_addr constant [17 x i8], align 1
@_ZTISt13runtime_error = external constant ptr
@__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb = external hidden unnamed_addr constant [18 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [12 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [37 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [42 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: mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8), i32 noundef) local_unnamed_addr #4 align 2

; Function Attrs: 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: mustprogress nounwind uwtable
declare dso_local noundef i32 @_ZNK9ScopeType3tagEv(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(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: mustprogress uwtable
declare dso_local void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #4 align 2

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

; Function Attrs: nounwind
declare void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #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 uwtable
define dso_local void @_ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb(ptr noundef nonnull align 8 dereferenceable(440) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(12) %3, i1 noundef zeroext %4) local_unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 {
  %6 = alloca %class.TraceLog, align 8
  %7 = alloca %"class.std::function", align 8
  %8 = alloca %class.anon.407, align 8
  %9 = alloca %"class.__gnu_cxx::__normal_iterator.408", align 8
  %10 = alloca %"class.__gnu_cxx::__normal_iterator.408", align 8
  %11 = alloca %"struct.MIR::LValue", align 8
  %12 = alloca i32, align 4
  %13 = alloca %"class.std::reverse_iterator", align 8
  %14 = alloca %"class.std::reverse_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.409", align 8
  %18 = alloca %"class.std::reverse_iterator", align 8
  %19 = alloca %struct.Span, align 8
  %20 = alloca %"class.std::function", align 8
  %21 = alloca %class.anon.410, align 8
  %22 = alloca %"class.std::reverse_iterator", align 8
  %23 = alloca %"struct.std::pair.413", align 8
  %24 = alloca %class.VarState, align 8
  %25 = alloca %struct.Span, align 8
  %26 = alloca %"class.std::function", align 8
  %27 = alloca %class.anon.415, align 8
  %28 = alloca %"struct.std::pair.413", align 8
  %29 = alloca %class.VarState, align 8
  %30 = alloca %struct.Span, align 8
  %31 = alloca %"class.std::function", align 8
  %32 = alloca %class.anon.416, align 8
  %33 = alloca %"struct.std::pair.413", align 8
  %34 = alloca %class.VarState, align 8
  %35 = alloca %class.VarState, align 8
  %36 = alloca %struct.Span, align 8
  %37 = alloca %"class.std::function", align 8
  %38 = alloca %class.anon.417, align 8
  %39 = alloca %struct.Span, align 8
  %40 = alloca %"class.std::function", align 8
  %41 = alloca %class.anon.418, align 8
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #7
  %42 = tail call noundef zeroext i1 @_Z13debug_enabledv()
  %43 = select i1 %42, ptr @__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb, ptr null
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #7
  store ptr %2, ptr %8, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_0vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull align 8 dereferenceable(8) %8) #7
  invoke void @_ZN8TraceLogC1EPKcSt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(40) %6, ptr noundef %43, ptr noundef nonnull %7)
          to label %44 unwind label %50

44:                                               ; preds = %5
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #7
  %45 = getelementptr inbounds i8, ptr %2, i64 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #7
  %46 = call ptr @_ZNKSt6vectorIN3MIR6LValue7WrapperESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  store ptr %46, ptr %9, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #7
  %47 = call ptr @_ZNKSt6vectorIN3MIR6LValue7WrapperESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %45) #7
  store ptr %47, ptr %10, align 8
  %48 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3MIR6LValue7WrapperESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %10) #7
  br i1 %48, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %63, %44
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  %49 = call noundef zeroext i1 @_ZNK3MIR6LValue7Storage8is_LocalEv(ptr noundef nonnull align 8 dereferenceable(8) %2)
  br i1 %49, label %66, label %451

50:                                               ; preds = %5
  %51 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #7
  br label %454

.lr.ph:                                           ; preds = %44, %63
  %52 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPKN3MIR6LValue7WrapperESt6vectorIS3_SaIS3_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  %53 = call noundef zeroext i1 @_ZNK3MIR6LValue7Wrapper8is_IndexEv(ptr noundef nonnull align 4 dereferenceable(4) %52)
  br i1 %53, label %54, label %63

54:                                               ; preds = %.lr.ph
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #7
  %55 = call noundef i32 @_ZNK3MIR6LValue7Wrapper8as_IndexEv(ptr noundef nonnull align 4 dereferenceable(4) %52)
  invoke void @_ZN3MIR6LValue9new_LocalEj(ptr dead_on_unwind nonnull writable sret(%"struct.MIR::LValue") align 8 %11, i32 noundef %55)
          to label %56 unwind label %58

56:                                               ; preds = %54
  invoke void @_ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb(ptr noundef nonnull align 8 dereferenceable(440) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(12) %3, i1 noundef zeroext %4)
          to label %57 unwind label %60

57:                                               ; preds = %56
  call void @_ZN3MIR6LValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #7
  br label %63

58:                                               ; preds = %54
  %59 = landingpad { ptr, i32 }
          cleanup
  br label %62

60:                                               ; preds = %56
  %61 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN3MIR6LValueD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  br label %62

62:                                               ; preds = %60, %58
  %.pn152 = phi { ptr, i32 } [ %61, %60 ], [ %59, %58 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #7
  br label %453

63:                                               ; preds = %57, %.lr.ph
  %64 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPKN3MIR6LValue7WrapperESt6vectorIS3_SaIS3_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %9) #7
  %65 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPKN3MIR6LValue7WrapperESt6vectorIS3_SaIS3_EEEEbRKNS_17__normal_iteratorIT_T0_EESE_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %10) #7
  br i1 %65, label %.lr.ph, label %._crit_edge

66:                                               ; preds = %._crit_edge
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #7
  %67 = call noundef i32 @_ZNK3MIR6LValue7Storage8as_LocalEv(ptr noundef nonnull align 8 dereferenceable(8) %2)
  store i32 %67, ptr %12, align 4, !tbaa !9
  %68 = zext i32 %67 to i64
  %69 = getelementptr inbounds i8, ptr %0, i64 264
  %70 = load i64, ptr %69, align 8, !tbaa !11
  %71 = icmp ule i64 %70, %68
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #7
  %72 = getelementptr inbounds i8, ptr %0, i64 344
  call void @_ZNSt6vectorIjSaIjEE6rbeginEv(ptr dead_on_unwind nonnull writable sret(%"class.std::reverse_iterator") align 8 %13, ptr noundef nonnull align 8 dereferenceable(24) %72) #7
  %73 = getelementptr inbounds i8, ptr %0, i64 320
  %74 = getelementptr inbounds i8, ptr %3, i64 8
  %75 = zext i1 %71 to i8
  br label %76

76:                                               ; preds = %175, %66
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #7
  call void @_ZNSt6vectorIjSaIjEE4rendEv(ptr dead_on_unwind nonnull writable sret(%"class.std::reverse_iterator") align 8 %14, ptr noundef nonnull align 8 dereferenceable(24) %72) #7
  %77 = invoke noundef zeroext i1 @_ZStneIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEbRKSt16reverse_iteratorIT_ESB_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14)
          to label %78 unwind label %107

78:                                               ; preds = %76
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  br i1 %77, label %79, label %.loopexit168

79:                                               ; preds = %78
  %80 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
  %81 = load i32, ptr %80, align 4, !tbaa !9
  %82 = zext i32 %81 to i64
  %83 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZNSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %73, i64 noundef %82)
          to label %84 unwind label %.loopexit169

84:                                               ; preds = %79
  %85 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
  %86 = load i32, ptr %85, align 4, !tbaa !9
  %87 = load i32, ptr %74, align 8, !tbaa !50
  %88 = icmp ne i32 %86, %87
  %brmerge = or i1 %88, %4
  br i1 %brmerge, label %109, label %89

89:                                               ; preds = %84
  %90 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %91 unwind label %.loopexit169

91:                                               ; preds = %89
  br i1 %90, label %92, label %109

92:                                               ; preds = %91
  %93 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %94 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %93, ptr noundef nonnull @__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb)
          to label %95 unwind label %.loopexit169

95:                                               ; preds = %92
  %96 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8) %94, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %97 unwind label %.loopexit169

97:                                               ; preds = %95
  %98 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %96, ptr noundef nonnull @.str.21)
          to label %99 unwind label %.loopexit169

99:                                               ; preds = %97
  %100 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK11ScopeHandle(ptr noundef nonnull align 8 dereferenceable(8) %98, ptr noundef nonnull align 8 dereferenceable(12) %3)
          to label %101 unwind label %.loopexit169

101:                                              ; preds = %99
  %102 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %100, ptr noundef nonnull @.str.22)
          to label %103 unwind label %.loopexit169

103:                                              ; preds = %101
  %104 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %102, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %105 unwind label %.loopexit169

105:                                              ; preds = %103
  %106 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %109 unwind label %.loopexit169

107:                                              ; preds = %76
  %108 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #7
  br label %452

.loopexit169:                                     ; preds = %79, %89, %92, %95, %97, %99, %101, %103, %105
  %lpad.loopexit171 = landingpad { ptr, i32 }
          cleanup
  br label %452

.loopexit.split-lp170:                            ; preds = %155, %158, %161, %163, %165, %167, %169, %171, %173
  %lpad.loopexit.split-lp172 = landingpad { ptr, i32 }
          cleanup
  br label %452

109:                                              ; preds = %84, %91, %105
  %110 = getelementptr inbounds i8, ptr %83, i64 16
  %111 = call noundef i32 @_ZNK9ScopeType3tagEv(ptr noundef nonnull align 8 dereferenceable(240) %110)
  %112 = icmp eq i32 %111, 1
  br i1 %112, label %113, label %.thread160

113:                                              ; preds = %109
  %114 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN9ScopeType9as_OwningEv(ptr noundef nonnull align 8 dereferenceable(240) %110)
  %115 = load i8, ptr %114, align 8, !tbaa !51, !range !53, !noundef !54
  %116 = icmp eq i8 %115, %75
  br i1 %116, label %117, label %.thread160

117:                                              ; preds = %113
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #7
  %118 = getelementptr inbounds i8, ptr %114, i64 8
  %119 = call ptr @_ZNSt6vectorIjSaIjEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %118) #7
  %120 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %118) #7
  %121 = invoke ptr @_ZSt4findIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEjET_S7_S7_RKT0_(ptr %119, ptr %120, ptr noundef nonnull align 4 dereferenceable(4) %12)
          to label %122 unwind label %.loopexit174

122:                                              ; preds = %117
  store ptr %121, ptr %15, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #7
  %123 = call ptr @_ZNSt6vectorIjSaIjEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %118) #7
  store ptr %123, ptr %16, align 8
  %124 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPjSt6vectorIjSaIjEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #7
  br i1 %124, label %125, label %150

125:                                              ; preds = %122
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKjSt6vectorIjSaIjEEEC2IPjvEERKNS0_IT_S5_EE(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %15) #7
  %126 = load ptr, ptr %17, align 8
  %127 = invoke ptr @_ZNSt6vectorIjSaIjEE5eraseEN9__gnu_cxx17__normal_iteratorIPKjS1_EE(ptr noundef nonnull align 8 dereferenceable(24) %118, ptr %126)
          to label %128 unwind label %.loopexit.split-lp175

128:                                              ; preds = %125
  %129 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %130 unwind label %.loopexit.split-lp175

130:                                              ; preds = %128
  br i1 %129, label %131, label %.thread166

131:                                              ; preds = %130
  %132 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %133 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %132, ptr noundef nonnull @__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb)
          to label %134 unwind label %.loopexit.split-lp175

134:                                              ; preds = %131
  %135 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %133, ptr noundef nonnull @.str.23)
          to label %136 unwind label %.loopexit.split-lp175

136:                                              ; preds = %134
  %137 = load i32, ptr %12, align 4, !tbaa !9
  %138 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %135, i32 noundef %137)
          to label %139 unwind label %.loopexit.split-lp175

139:                                              ; preds = %136
  %140 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %138, ptr noundef nonnull @.str.24)
          to label %141 unwind label %.loopexit.split-lp175

141:                                              ; preds = %139
  %142 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
  %143 = load i32, ptr %142, align 4, !tbaa !9
  %144 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %140, i32 noundef %143)
          to label %145 unwind label %.loopexit.split-lp175

145:                                              ; preds = %141
  %146 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %144, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %147 unwind label %.loopexit.split-lp175

147:                                              ; preds = %145
  %148 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %146, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.thread166 unwind label %.loopexit.split-lp175

.loopexit174:                                     ; preds = %117
  %lpad.loopexit176 = landingpad { ptr, i32 }
          cleanup
  br label %149

.loopexit.split-lp175:                            ; preds = %125, %128, %131, %134, %136, %139, %141, %145, %147
  %lpad.loopexit.split-lp177 = landingpad { ptr, i32 }
          cleanup
  br label %149

149:                                              ; preds = %.loopexit.split-lp175, %.loopexit174
  %lpad.phi178 = phi { ptr, i32 } [ %lpad.loopexit176, %.loopexit174 ], [ %lpad.loopexit.split-lp177, %.loopexit.split-lp175 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  br label %452

150:                                              ; preds = %122
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  br label %.thread160

.thread166:                                       ; preds = %147, %130
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #7
  br label %.loopexit168

.thread160:                                       ; preds = %113, %150, %109
  %151 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
  %152 = load i32, ptr %151, align 4, !tbaa !9
  %153 = load i32, ptr %74, align 8, !tbaa !50
  %154 = icmp eq i32 %152, %153
  br i1 %154, label %155, label %175

155:                                              ; preds = %.thread160
  %156 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %157 unwind label %.loopexit.split-lp170

157:                                              ; preds = %155
  br i1 %156, label %158, label %.critedge

158:                                              ; preds = %157
  %159 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %160 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %159, ptr noundef nonnull @__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb)
          to label %161 unwind label %.loopexit.split-lp170

161:                                              ; preds = %158
  %162 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %160, ptr noundef nonnull @.str.25)
          to label %163 unwind label %.loopexit.split-lp170

163:                                              ; preds = %161
  %164 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8) %162, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %165 unwind label %.loopexit.split-lp170

165:                                              ; preds = %163
  %166 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %164, ptr noundef nonnull @.str.26)
          to label %167 unwind label %.loopexit.split-lp170

167:                                              ; preds = %165
  %168 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZlsRSoRK11ScopeHandle(ptr noundef nonnull align 8 dereferenceable(8) %166, ptr noundef nonnull align 8 dereferenceable(12) %3)
          to label %169 unwind label %.loopexit.split-lp170

169:                                              ; preds = %167
  %170 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %168, ptr noundef nonnull @.str.22)
          to label %171 unwind label %.loopexit.split-lp170

171:                                              ; preds = %169
  %172 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %170, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %173 unwind label %.loopexit.split-lp170

173:                                              ; preds = %171
  %174 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %172, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.critedge unwind label %.loopexit.split-lp170

175:                                              ; preds = %.thread160
  %176 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
  br label %76

.loopexit168:                                     ; preds = %78, %.thread166
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #7
  call void @_ZNSt6vectorIjSaIjEE4rendEv(ptr dead_on_unwind nonnull writable sret(%"class.std::reverse_iterator") align 8 %18, ptr noundef nonnull align 8 dereferenceable(24) %72) #7
  %177 = call noundef zeroext i1 @_ZSteqIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEbRKSt16reverse_iteratorIT_ESB_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %18)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #7
  br i1 %177, label %178, label %192

178:                                              ; preds = %.loopexit168
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #7
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %179 unwind label %183

179:                                              ; preds = %178
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #7
  store ptr %2, ptr %21, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_1vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(8) %21) #7
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull %20)
          to label %180 unwind label %185

180:                                              ; preds = %179
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #7
  %181 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %181, ptr noundef nonnull @.str.9)
          to label %182 unwind label %188

182:                                              ; preds = %180
  invoke void @__cxa_throw(ptr nonnull %181, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #8
          to label %455 unwind label %190

183:                                              ; preds = %178
  %184 = landingpad { ptr, i32 }
          cleanup
  br label %187

185:                                              ; preds = %179
  %186 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  br label %187

187:                                              ; preds = %185, %183
  %.pn148 = phi { ptr, i32 } [ %186, %185 ], [ %184, %183 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #7
  br label %452

188:                                              ; preds = %180
  %189 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %181) #7
  br label %452

190:                                              ; preds = %182
  %191 = landingpad { ptr, i32 }
          cleanup
  br label %452

192:                                              ; preds = %.loopexit168
  %193 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
  %194 = load i32, ptr %193, align 4, !tbaa !9
  %195 = load i32, ptr %74, align 8, !tbaa !50
  %196 = icmp eq i32 %194, %195
  %.not234 = xor i1 %196, true
  %brmerge235 = or i1 %.not234, %4
  br i1 %brmerge235, label %.sink.split, label %200

197:                                              ; preds = %443
  %198 = landingpad { ptr, i32 }
          cleanup
  br label %452

.sink.split:                                      ; preds = %192
  %199 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
  br label %200

200:                                              ; preds = %192, %.sink.split
  %201 = getelementptr inbounds i8, ptr %0, i64 240
  br label %202

202:                                              ; preds = %.critedge157, %200
  %.1113 = phi i1 [ %196, %200 ], [ %spec.select, %.critedge157 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #7
  call void @_ZNSt6vectorIjSaIjEE4rendEv(ptr dead_on_unwind nonnull writable sret(%"class.std::reverse_iterator") align 8 %22, ptr noundef nonnull align 8 dereferenceable(24) %72) #7
  %203 = invoke noundef zeroext i1 @_ZStneIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEbRKSt16reverse_iteratorIT_ESB_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %204 unwind label %233

204:                                              ; preds = %202
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #7
  br i1 %203, label %205, label %439

205:                                              ; preds = %204
  %206 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
  %207 = load i32, ptr %206, align 4, !tbaa !9
  %208 = zext i32 %207 to i64
  %209 = invoke noundef nonnull align 8 dereferenceable(256) ptr @_ZNSt6vectorIN10MirBuilder8ScopeDefESaIS1_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %73, i64 noundef %208)
          to label %210 unwind label %235

210:                                              ; preds = %205
  %211 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %212 unwind label %235

212:                                              ; preds = %210
  br i1 %211, label %213, label %237

213:                                              ; preds = %212
  %214 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %215 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %214, ptr noundef nonnull @__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb)
          to label %216 unwind label %235

216:                                              ; preds = %213
  %217 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %215, ptr noundef nonnull @.str.27)
          to label %218 unwind label %235

218:                                              ; preds = %216
  %219 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
  %220 = load i32, ptr %219, align 4, !tbaa !9
  %221 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %217, i32 noundef %220)
          to label %222 unwind label %235

222:                                              ; preds = %218
  %223 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %221, ptr noundef nonnull @.str.28)
          to label %224 unwind label %235

224:                                              ; preds = %222
  %225 = getelementptr inbounds i8, ptr %209, i64 16
  %226 = invoke noundef ptr @_ZNK9ScopeType7tag_strEv(ptr noundef nonnull align 8 dereferenceable(240) %225)
          to label %227 unwind label %235

227:                                              ; preds = %224
  %228 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %223, ptr noundef %226)
          to label %229 unwind label %235

229:                                              ; preds = %227
  %230 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %228, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %231 unwind label %235

231:                                              ; preds = %229
  %232 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %230, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %237 unwind label %235

233:                                              ; preds = %202
  %234 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #7
  br label %452

235:                                              ; preds = %231, %229, %227, %224, %222, %218, %216, %213, %210, %205
  %236 = landingpad { ptr, i32 }
          cleanup
  br label %452

237:                                              ; preds = %231, %212
  %238 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
  %239 = load i32, ptr %238, align 4, !tbaa !9
  %240 = load i32, ptr %74, align 8, !tbaa !50
  %241 = icmp eq i32 %239, %240
  %spec.select = select i1 %241, i1 true, i1 %.1113
  %242 = getelementptr inbounds i8, ptr %209, i64 16
  %243 = call noundef i32 @_ZNK9ScopeType3tagEv(ptr noundef nonnull align 8 dereferenceable(240) %242)
  %244 = icmp eq i32 %243, 1
  br i1 %244, label %245, label %269

245:                                              ; preds = %237
  %246 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZN9ScopeType9as_OwningEv(ptr noundef nonnull align 8 dereferenceable(240) %242)
  %247 = load i8, ptr %246, align 8, !range !53
  %248 = icmp eq i8 %247, %75
  %or.cond = select i1 %spec.select, i1 %248, i1 false
  br i1 %or.cond, label %249, label %.critedge157

249:                                              ; preds = %245
  %250 = getelementptr inbounds i8, ptr %246, i64 8
  invoke void @_ZNSt6vectorIjSaIjEE9push_backERKj(ptr noundef nonnull align 8 dereferenceable(24) %250, ptr noundef nonnull align 4 dereferenceable(4) %12)
          to label %251 unwind label %267

251:                                              ; preds = %249
  %252 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %253 unwind label %267

253:                                              ; preds = %251
  br i1 %252, label %254, label %.critedge

254:                                              ; preds = %253
  %255 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %256 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %255, ptr noundef nonnull @__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb)
          to label %257 unwind label %267

257:                                              ; preds = %254
  %258 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %256, ptr noundef nonnull @.str.29)
          to label %259 unwind label %267

259:                                              ; preds = %257
  %260 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNKSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
  %261 = load i32, ptr %260, align 4, !tbaa !9
  %262 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEj(ptr noundef nonnull align 8 dereferenceable(8) %258, i32 noundef %261)
          to label %263 unwind label %267

263:                                              ; preds = %259
  %264 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %262, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %265 unwind label %267

265:                                              ; preds = %263
  %266 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %264, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.critedge unwind label %267

267:                                              ; preds = %265, %263, %259, %257, %254, %251, %249
  %268 = landingpad { ptr, i32 }
          cleanup
  br label %452

269:                                              ; preds = %237
  %270 = call noundef ptr @_ZN9ScopeType8opt_LoopEv(ptr noundef nonnull align 8 dereferenceable(240) %242)
  %.not = icmp eq ptr %270, null
  br i1 %.not, label %334, label %271

271:                                              ; preds = %269
  %272 = getelementptr inbounds i8, ptr %270, i64 96
  %273 = load i8, ptr %272, align 8, !tbaa !55, !range !53, !noundef !54
  %274 = trunc nuw i8 %273 to i1
  br i1 %274, label %275, label %322

275:                                              ; preds = %271
  %276 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %277 unwind label %291

277:                                              ; preds = %275
  br i1 %276, label %278, label %293

278:                                              ; preds = %277
  %279 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %280 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %279, ptr noundef nonnull @__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb)
          to label %281 unwind label %291

281:                                              ; preds = %278
  %282 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %280, ptr noundef nonnull @.str.30)
          to label %283 unwind label %291

283:                                              ; preds = %281
  %284 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8) %282, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %285 unwind label %291

285:                                              ; preds = %283
  %286 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %284, ptr noundef nonnull @.str.31)
          to label %287 unwind label %291

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

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

291:                                              ; preds = %332, %330, %328, %325, %322, %289, %287, %285, %283, %281, %278, %275
  %292 = landingpad { ptr, i32 }
          cleanup
  br label %452

293:                                              ; preds = %289, %277
  %294 = getelementptr inbounds i8, ptr %270, i64 104
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %23) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %24) #7
  invoke void @_ZN8VarStateC2E11InvalidType(ptr noundef nonnull align 8 dereferenceable(40) %24, i32 noundef 0)
          to label %295 unwind label %305

295:                                              ; preds = %293
  invoke void @_ZSt9make_pairIRKj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.413") align 8 %23, ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull align 8 dereferenceable(40) %24)
          to label %296 unwind label %307

296:                                              ; preds = %295
  %297 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %294, ptr noundef nonnull align 8 dereferenceable(48) %23)
          to label %298 unwind label %309

298:                                              ; preds = %296
  %.fca.1.extract11 = extractvalue { ptr, i8 } %297, 1
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %23) #7
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %24) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %23) #7
  %299 = trunc i8 %.fca.1.extract11 to i1
  br i1 %299, label %.critedge157, label %300

300:                                              ; preds = %298
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #7
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %301 unwind label %313

301:                                              ; preds = %300
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #7
  store ptr %2, ptr %27, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_2vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(8) %27) #7
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull %26)
          to label %302 unwind label %315

302:                                              ; preds = %301
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #7
  %303 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %303, ptr noundef nonnull @.str.9)
          to label %304 unwind label %318

304:                                              ; preds = %302
  invoke void @__cxa_throw(ptr nonnull %303, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #8
          to label %455 unwind label %320

305:                                              ; preds = %293
  %306 = landingpad { ptr, i32 }
          cleanup
  br label %312

307:                                              ; preds = %295
  %308 = landingpad { ptr, i32 }
          cleanup
  br label %311

309:                                              ; preds = %296
  %310 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %23) #7
  br label %311

311:                                              ; preds = %309, %307
  %.pn137 = phi { ptr, i32 } [ %310, %309 ], [ %308, %307 ]
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %24) #7
  br label %312

312:                                              ; preds = %311, %305
  %.pn137.pn = phi { ptr, i32 } [ %.pn137, %311 ], [ %306, %305 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %24) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %23) #7
  br label %452

313:                                              ; preds = %300
  %314 = landingpad { ptr, i32 }
          cleanup
  br label %317

315:                                              ; preds = %301
  %316 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %25) #7
  br label %317

317:                                              ; preds = %315, %313
  %.pn140 = phi { ptr, i32 } [ %316, %315 ], [ %314, %313 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #7
  br label %452

318:                                              ; preds = %302
  %319 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %303) #7
  br label %452

320:                                              ; preds = %304
  %321 = landingpad { ptr, i32 }
          cleanup
  br label %452

322:                                              ; preds = %271
  %323 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %324 unwind label %291

324:                                              ; preds = %322
  br i1 %323, label %325, label %.critedge157

325:                                              ; preds = %324
  %326 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %327 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %326, ptr noundef nonnull @__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb)
          to label %328 unwind label %291

328:                                              ; preds = %325
  %329 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %327, ptr noundef nonnull @.str.32)
          to label %330 unwind label %291

330:                                              ; preds = %328
  %331 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %329, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %332 unwind label %291

332:                                              ; preds = %330
  %333 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %331, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %.critedge157 unwind label %291

334:                                              ; preds = %269
  %335 = call noundef ptr @_ZN9ScopeType9opt_SplitEv(ptr noundef nonnull align 8 dereferenceable(240) %242)
  %.not120 = icmp eq ptr %335, null
  br i1 %.not120, label %426, label %336

336:                                              ; preds = %334
  %337 = load i8, ptr %335, align 8, !tbaa !61, !range !53, !noundef !54
  %338 = trunc nuw i8 %337 to i1
  br i1 %338, label %339, label %384

339:                                              ; preds = %336
  %340 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %341 unwind label %.loopexit

341:                                              ; preds = %339
  br i1 %340, label %342, label %355

342:                                              ; preds = %341
  %343 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %344 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %343, ptr noundef nonnull @__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb)
          to label %345 unwind label %.loopexit

345:                                              ; preds = %342
  %346 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %344, ptr noundef nonnull @.str.30)
          to label %347 unwind label %.loopexit

347:                                              ; preds = %345
  %348 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN3MIRlsERSoRKNS_6LValueE(ptr noundef nonnull align 8 dereferenceable(8) %346, ptr noundef nonnull align 8 dereferenceable(32) %2)
          to label %349 unwind label %.loopexit

349:                                              ; preds = %347
  %350 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %348, ptr noundef nonnull @.str.31)
          to label %351 unwind label %.loopexit

351:                                              ; preds = %349
  %352 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %350, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %353 unwind label %.loopexit

353:                                              ; preds = %351
  %354 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %352, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %355 unwind label %.loopexit

.loopexit:                                        ; preds = %339, %342, %345, %347, %349, %351, %353, %384, %387, %390, %392, %394
  %lpad.loopexit = landingpad { ptr, i32 }
          cleanup
  br label %452

.loopexit.split-lp:                               ; preds = %430
  %lpad.loopexit.split-lp = landingpad { ptr, i32 }
          cleanup
  br label %452

355:                                              ; preds = %353, %341
  %356 = getelementptr inbounds i8, ptr %335, i64 104
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %28) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %29) #7
  invoke void @_ZN8VarStateC2E11InvalidType(ptr noundef nonnull align 8 dereferenceable(40) %29, i32 noundef 0)
          to label %357 unwind label %367

357:                                              ; preds = %355
  invoke void @_ZSt9make_pairIRKj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.413") align 8 %28, ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull align 8 dereferenceable(40) %29)
          to label %358 unwind label %369

358:                                              ; preds = %357
  %359 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %356, ptr noundef nonnull align 8 dereferenceable(48) %28)
          to label %360 unwind label %371

360:                                              ; preds = %358
  %.fca.1.extract = extractvalue { ptr, i8 } %359, 1
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %28) #7
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %29) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %28) #7
  %361 = trunc i8 %.fca.1.extract to i1
  br i1 %361, label %396, label %362

362:                                              ; preds = %360
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #7
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %363 unwind label %375

363:                                              ; preds = %362
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #7
  store ptr %2, ptr %32, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_3vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef nonnull align 8 dereferenceable(8) %32) #7
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %30, ptr noundef nonnull %31)
          to label %364 unwind label %377

364:                                              ; preds = %363
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #7
  %365 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %365, ptr noundef nonnull @.str.9)
          to label %366 unwind label %380

366:                                              ; preds = %364
  invoke void @__cxa_throw(ptr nonnull %365, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #8
          to label %455 unwind label %382

367:                                              ; preds = %355
  %368 = landingpad { ptr, i32 }
          cleanup
  br label %374

369:                                              ; preds = %357
  %370 = landingpad { ptr, i32 }
          cleanup
  br label %373

371:                                              ; preds = %358
  %372 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %28) #7
  br label %373

373:                                              ; preds = %371, %369
  %.pn123 = phi { ptr, i32 } [ %372, %371 ], [ %370, %369 ]
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %29) #7
  br label %374

374:                                              ; preds = %373, %367
  %.pn123.pn = phi { ptr, i32 } [ %.pn123, %373 ], [ %368, %367 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %29) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %28) #7
  br label %452

375:                                              ; preds = %362
  %376 = landingpad { ptr, i32 }
          cleanup
  br label %379

377:                                              ; preds = %363
  %378 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %30) #7
  br label %379

379:                                              ; preds = %377, %375
  %.pn126 = phi { ptr, i32 } [ %378, %377 ], [ %376, %375 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #7
  br label %452

380:                                              ; preds = %364
  %381 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %365) #7
  br label %452

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

384:                                              ; preds = %336
  %385 = invoke noundef zeroext i1 @_Z13debug_enabledv()
          to label %386 unwind label %.loopexit

386:                                              ; preds = %384
  br i1 %385, label %387, label %396

387:                                              ; preds = %386
  %388 = load i32, ptr @g_debug_indent_level, align 4, !tbaa !9
  %389 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_Z12debug_outputiPKc(i32 noundef %388, ptr noundef nonnull @__func__._ZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandleb)
          to label %390 unwind label %.loopexit

390:                                              ; preds = %387
  %391 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %389, ptr noundef nonnull @.str.33)
          to label %392 unwind label %.loopexit

392:                                              ; preds = %390
  %393 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %391, ptr noundef nonnull @_ZSt3decRSt8ios_base)
          to label %394 unwind label %.loopexit

394:                                              ; preds = %392
  %395 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %393, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %396 unwind label %.loopexit

396:                                              ; preds = %360, %386, %394
  %397 = getelementptr inbounds i8, ptr %335, i64 200
  %398 = call noundef nonnull align 8 dereferenceable(104) ptr @_ZNSt6vectorI8SplitArmSaIS0_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %397) #7
  %399 = getelementptr inbounds i8, ptr %398, i64 8
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %34) #7
  %400 = load i32, ptr %12, align 4, !tbaa !9
  %401 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNK10MirBuilder14get_slot_stateERK4SpanjNS_8SlotTypeEj(ptr noundef nonnull align 8 dereferenceable(440) %0, ptr noundef nonnull align 8 dereferenceable(8) %1, i32 noundef %400, i32 noundef 0, i32 noundef 0)
          to label %402 unwind label %413

402:                                              ; preds = %396
  invoke void @_ZNK8VarState5cloneEv(ptr dead_on_unwind nonnull writable sret(%class.VarState) align 8 %34, ptr noundef nonnull align 8 dereferenceable(40) %401)
          to label %403 unwind label %413

403:                                              ; preds = %402
  invoke void @_ZSt9make_pairIRKj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind nonnull writable sret(%"struct.std::pair.413") align 8 %33, ptr noundef nonnull align 4 dereferenceable(4) %12, ptr noundef nonnull align 8 dereferenceable(40) %34)
          to label %404 unwind label %415

404:                                              ; preds = %403
  %405 = invoke { ptr, i8 } @_ZNSt3mapIj8VarStateSt4lessIjESaISt4pairIKjS0_EEE6insertIS3_IjS0_EEENSt9enable_ifIXsr16is_constructibleIS5_T_EE5valueES3_ISt17_Rb_tree_iteratorIS5_EbEE4typeEOSB_(ptr noundef nonnull align 8 dereferenceable(48) %399, ptr noundef nonnull align 8 dereferenceable(48) %33)
          to label %406 unwind label %417

406:                                              ; preds = %404
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %33) #7
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %34) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %33) #7
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %35) #7
  invoke void @_ZN8VarStateC2E11InvalidType(ptr noundef nonnull align 8 dereferenceable(40) %35, i32 noundef 0)
          to label %407 unwind label %421

407:                                              ; preds = %406
  %408 = load i32, ptr %12, align 4, !tbaa !9
  %409 = zext i32 %408 to i64
  %410 = invoke noundef nonnull align 8 dereferenceable(40) ptr @_ZNSt6vectorI8VarStateSaIS0_EE2atEm(ptr noundef nonnull align 8 dereferenceable(24) %201, i64 noundef %409)
          to label %411 unwind label %423

411:                                              ; preds = %407
  %412 = call noundef nonnull align 8 dereferenceable(40) ptr @_ZN8VarStateaSEOS_(ptr noundef nonnull align 8 dereferenceable(40) %410, ptr noundef nonnull align 8 dereferenceable(40) %35)
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %35) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %35) #7
  br label %.critedge157

413:                                              ; preds = %402, %396
  %414 = landingpad { ptr, i32 }
          cleanup
  br label %420

415:                                              ; preds = %403
  %416 = landingpad { ptr, i32 }
          cleanup
  br label %419

417:                                              ; preds = %404
  %418 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt4pairIj8VarStateED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %33) #7
  br label %419

419:                                              ; preds = %417, %415
  %.pn130 = phi { ptr, i32 } [ %418, %417 ], [ %416, %415 ]
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %34) #7
  br label %420

420:                                              ; preds = %419, %413
  %.pn130.pn = phi { ptr, i32 } [ %.pn130, %419 ], [ %414, %413 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %34) #7
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %33) #7
  br label %452

421:                                              ; preds = %406
  %422 = landingpad { ptr, i32 }
          cleanup
  br label %425

423:                                              ; preds = %407
  %424 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN8VarStateD2Ev(ptr noundef nonnull align 8 dereferenceable(40) %35) #7
  br label %425

425:                                              ; preds = %423, %421
  %.pn133 = phi { ptr, i32 } [ %424, %423 ], [ %422, %421 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %35) #7
  br label %452

426:                                              ; preds = %334
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #7
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %427 unwind label %431

427:                                              ; preds = %426
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #7
  store ptr %209, ptr %38, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_4vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull align 8 dereferenceable(8) %38) #7
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull %37)
          to label %428 unwind label %433

428:                                              ; preds = %427
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #7
  %429 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %429, ptr noundef nonnull @.str.9)
          to label %430 unwind label %436

430:                                              ; preds = %428
  invoke void @__cxa_throw(ptr nonnull %429, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #8
          to label %455 unwind label %.loopexit.split-lp

431:                                              ; preds = %426
  %432 = landingpad { ptr, i32 }
          cleanup
  br label %435

433:                                              ; preds = %427
  %434 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %36) #7
  br label %435

435:                                              ; preds = %433, %431
  %.pn121 = phi { ptr, i32 } [ %434, %433 ], [ %432, %431 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #7
  br label %452

436:                                              ; preds = %428
  %437 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %429) #7
  br label %452

.critedge157:                                     ; preds = %245, %298, %332, %324, %411
  %438 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt16reverse_iteratorIN9__gnu_cxx17__normal_iteratorIPjSt6vectorIjSaIjEEEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %13)
  br label %202, !llvm.loop !67

439:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #7
  invoke void @_ZN4SpanC1ERKS_(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull align 8 dereferenceable(8) %1)
          to label %440 unwind label %444

440:                                              ; preds = %439
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #7
  store ptr %2, ptr %41, align 8, !tbaa !5
  call void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_5vEEOT_"(ptr noundef nonnull align 8 dereferenceable(32) %40, ptr noundef nonnull align 8 dereferenceable(8) %41) #7
  invoke void @_ZNK4Span3bugESt8functionIFvRSoEE(ptr noundef nonnull align 8 dereferenceable(8) %39, ptr noundef nonnull %40)
          to label %441 unwind label %446

441:                                              ; preds = %440
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #7
  %442 = call ptr @__cxa_allocate_exception(i64 16) #7
  invoke void @_ZNSt13runtime_errorC1EPKc(ptr noundef nonnull align 8 dereferenceable(16) %442, ptr noundef nonnull @.str.9)
          to label %443 unwind label %449

443:                                              ; preds = %441
  invoke void @__cxa_throw(ptr nonnull %442, ptr nonnull @_ZTISt13runtime_error, ptr nonnull @_ZNSt13runtime_errorD1Ev) #8
          to label %455 unwind label %197

444:                                              ; preds = %439
  %445 = landingpad { ptr, i32 }
          cleanup
  br label %448

446:                                              ; preds = %440
  %447 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt14_Function_baseD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #7
  call void @_ZN4SpanD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %39) #7
  br label %448

448:                                              ; preds = %446, %444
  %.pn118 = phi { ptr, i32 } [ %447, %446 ], [ %445, %444 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #7
  br label %452

449:                                              ; preds = %441
  %450 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %442) #7
  br label %452

.critedge:                                        ; preds = %157, %173, %265, %253
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #7
  br label %451

451:                                              ; preds = %._crit_edge, %.critedge
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %6) #7
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #7
  ret void

452:                                              ; preds = %.loopexit, %.loopexit.split-lp, %.loopexit169, %.loopexit.split-lp170, %197, %233, %448, %449, %291, %320, %318, %317, %312, %420, %425, %374, %379, %380, %382, %436, %435, %267, %235, %149, %190, %188, %187, %107
  %.pn150 = phi { ptr, i32 } [ %191, %190 ], [ %189, %188 ], [ %.pn148, %187 ], [ %108, %107 ], [ %lpad.phi178, %149 ], [ %198, %197 ], [ %450, %449 ], [ %.pn118, %448 ], [ %234, %233 ], [ %268, %267 ], [ %236, %235 ], [ %292, %291 ], [ %321, %320 ], [ %319, %318 ], [ %.pn140, %317 ], [ %.pn137.pn, %312 ], [ %437, %436 ], [ %.pn121, %435 ], [ %383, %382 ], [ %381, %380 ], [ %.pn126, %379 ], [ %.pn123.pn, %374 ], [ %.pn133, %425 ], [ %.pn130.pn, %420 ], [ %lpad.loopexit171, %.loopexit169 ], [ %lpad.loopexit.split-lp172, %.loopexit.split-lp170 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #7
  br label %453

453:                                              ; preds = %452, %62
  %.pn152.pn = phi { ptr, i32 } [ %.pn152, %62 ], [ %.pn150, %452 ]
  call void @_ZN8TraceLogD1Ev(ptr noundef nonnull align 8 dereferenceable(40) %6) #7
  br label %454

454:                                              ; preds = %453, %50
  %.pn152.pn.pn = phi { ptr, i32 } [ %.pn152.pn, %453 ], [ %51, %50 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #7
  resume { ptr, i32 } %.pn152.pn.pn

455:                                              ; preds = %443, %430, %366, %304, %182
  unreachable
}

; Function Attrs: mustprogress nounwind uwtable
declare hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_0vEEOT_"(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 dso_local ptr @_ZNKSt6vectorIN3MIR6LValue7WrapperESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #1 align 2

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

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

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

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

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

; 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 uwtable
declare dso_local ptr @_ZNSt6vectorIjSaIjEE5eraseEN9__gnu_cxx17__normal_iteratorIPKjS1_EE(ptr noundef nonnull align 8 dereferenceable(24), ptr) local_unnamed_addr #4 align 2

; 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 hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_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 dso_local noundef ptr @_ZNK9ScopeType7tag_strEv(ptr noundef nonnull align 8 dereferenceable(240)) local_unnamed_addr #4 align 2

; 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 @_ZSt9make_pairIRKj8VarStateESt4pairINSt25__strip_reference_wrapperINSt5decayIT_E4typeEE6__typeENS4_INS5_IT0_E4typeEE6__typeEEOS6_OSB_(ptr dead_on_unwind noalias writable sret(%"struct.std::pair.413") align 8, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #4

; Function Attrs: 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 hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_2vEEOT_"(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 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 hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_3vEEOT_"(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 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 @_ZNK10MirBuilder14get_slot_stateERK4SpanjNS_8SlotTypeEj(ptr noundef nonnull align 8 dereferenceable(440), ptr noundef nonnull align 8 dereferenceable(8), i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #4 align 2

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

; Function Attrs: mustprogress 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 hidden void @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_4vEEOT_"(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 @"_ZNSt8functionIFvRSoEEC2IZN10MirBuilder17raise_temporariesERK4SpanRKN3MIR6LValueERK11ScopeHandlebE3$_5vEEOT_"(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 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 = { nounwind }
attributes #8 = { noreturn }

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


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