; LLVM IR from facebook/redex :: libredex (CFGMutation)

; 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"

%"class.ir_list::InstructionIteratorImpl" = type { %"class.boost::intrusive::list_iterator", %"class.boost::intrusive::list_iterator" }
%"class.boost::intrusive::list_iterator" = type { %"struct.boost::intrusive::iiterator_members" }
%"struct.boost::intrusive::iiterator_members" = type { ptr }
%"class.cfg::InstructionIteratorImpl" = type { ptr, %"struct.std::_Rb_tree_const_iterator", %"class.ir_list::InstructionIteratorImpl" }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.114" = type { ptr }
%"class.std::unique_ptr.88" = type { %"struct.std::__uniq_ptr_data.89" }
%"struct.std::__uniq_ptr_data.89" = type { %"class.std::__uniq_ptr_impl.90" }
%"class.std::__uniq_ptr_impl.90" = type { %"class.std::tuple.91" }
%"class.std::tuple.91" = type { %"struct.std::_Tuple_impl.92" }
%"struct.std::_Tuple_impl.92" = type { %"struct.std::_Head_base.95" }
%"struct.std::_Head_base.95" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.115" = type { ptr }
%"class.std::unique_ptr.96" = type { %"struct.std::__uniq_ptr_data.97" }
%"struct.std::__uniq_ptr_data.97" = type { %"class.std::__uniq_ptr_impl.98" }
%"class.std::__uniq_ptr_impl.98" = type { %"class.std::tuple.99" }
%"class.std::tuple.99" = type { %"struct.std::_Tuple_impl.100" }
%"struct.std::_Tuple_impl.100" = type { %"struct.std::_Head_base.103" }
%"struct.std::_Head_base.103" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.116" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<IRInstruction *, std::allocator<IRInstruction *>>::_Vector_impl" }
%"struct.std::_Vector_base<IRInstruction *, std::allocator<IRInstruction *>>::_Vector_impl" = type { %"struct.std::_Vector_base<IRInstruction *, std::allocator<IRInstruction *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<IRInstruction *, std::allocator<IRInstruction *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.118" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.117" = type { ptr }
%"class.ir_list::InstructionIterableImpl" = type { %"class.boost::intrusive::list_iterator", %"class.boost::intrusive::list_iterator" }
%struct.MethodItemEntry = type { %"class.boost::intrusive::list_member_hook", i32, %union.anon.79 }
%"class.boost::intrusive::list_member_hook" = type { %"class.boost::intrusive::generic_hook" }
%"class.boost::intrusive::generic_hook" = type { %"struct.boost::intrusive::list_node" }
%"struct.boost::intrusive::list_node" = type { ptr, ptr }
%union.anon.79 = type { ptr }
%"class.cfg::CFGMutation::ChangeSet" = type { %"class.boost::intrusive::list_iterator", %"class.std::vector", %"class.boost::optional", %"class.std::vector", %"class.std::vector.36", %"class.std::vector.36", %"class.std::vector.41", %"class.std::vector.41", %"class.std::vector.46", %"class.std::vector.46" }
%"class.boost::optional" = type { %"class.boost::optional_detail::optional_base" }
%"class.boost::optional_detail::optional_base" = type { i8, [7 x i8], %"class.boost::optional_detail::aligned_storage" }
%"class.boost::optional_detail::aligned_storage" = type { %"union.boost::optional_detail::aligned_storage<std::vector<IRInstruction *>>::dummy_u" }
%"union.boost::optional_detail::aligned_storage<std::vector<IRInstruction *>>::dummy_u" = type { [24 x i8] }
%"class.std::vector.36" = type { %"struct.std::_Vector_base.37" }
%"struct.std::_Vector_base.37" = type { %"struct.std::_Vector_base<std::unique_ptr<DexPosition>, std::allocator<std::unique_ptr<DexPosition>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unique_ptr<DexPosition>, std::allocator<std::unique_ptr<DexPosition>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unique_ptr<DexPosition>, std::allocator<std::unique_ptr<DexPosition>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unique_ptr<DexPosition>, std::allocator<std::unique_ptr<DexPosition>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.41" = type { %"struct.std::_Vector_base.42" }
%"struct.std::_Vector_base.42" = type { %"struct.std::_Vector_base<std::unique_ptr<SourceBlock>, std::allocator<std::unique_ptr<SourceBlock>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::unique_ptr<SourceBlock>, std::allocator<std::unique_ptr<SourceBlock>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::unique_ptr<SourceBlock>, std::allocator<std::unique_ptr<SourceBlock>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::unique_ptr<SourceBlock>, std::allocator<std::unique_ptr<SourceBlock>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.46" = type { %"struct.std::_Vector_base.47" }
%"struct.std::_Vector_base.47" = type { %"struct.std::_Vector_base<std::variant<IRInstruction *, std::unique_ptr<SourceBlock>, std::unique_ptr<DexPosition>>, std::allocator<std::variant<IRInstruction *, std::unique_ptr<SourceBlock>, std::unique_ptr<DexPosition>>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::variant<IRInstruction *, std::unique_ptr<SourceBlock>, std::unique_ptr<DexPosition>>, std::allocator<std::variant<IRInstruction *, std::unique_ptr<SourceBlock>, std::unique_ptr<DexPosition>>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::variant<IRInstruction *, std::unique_ptr<SourceBlock>, std::unique_ptr<DexPosition>>, std::allocator<std::variant<IRInstruction *, std::unique_ptr<SourceBlock>, std::unique_ptr<DexPosition>>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::variant<IRInstruction *, std::unique_ptr<SourceBlock>, std::unique_ptr<DexPosition>>, std::allocator<std::variant<IRInstruction *, std::unique_ptr<SourceBlock>, std::unique_ptr<DexPosition>>>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str.6 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [84 x i8], align 1
@__PRETTY_FUNCTION__._ZN3cfg11CFGMutation9ChangeSet5applyERNS_16ControlFlowGraphEPNS_5BlockERN7ir_list23InstructionIteratorImplILb0EEE = external hidden unnamed_addr constant [106 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [75 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: noreturn
declare void @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, ...) #1

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32)) #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7ir_list23InstructionIterableImplILb0EE3endEv(ptr dead_on_unwind noalias writable sret(%"class.ir_list::InstructionIteratorImpl") align 8, ptr noundef nonnull align 8 dereferenceable(16)) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK7ir_list23InstructionIteratorImplILb0EEptEv(ptr noundef nonnull align 8 dereferenceable(16)) #2 align 2

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN3cfg11CFGMutation9ChangeSet5applyERNS_16ControlFlowGraphEPNS_5BlockERN7ir_list23InstructionIteratorImplILb0EEE(ptr noundef nonnull align 8 dereferenceable(232) %0, ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(16) %3) #2 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i8, align 1
  %10 = alloca %"class.cfg::InstructionIteratorImpl", align 8
  %11 = alloca ptr, align 8
  %12 = alloca %"class.__gnu_cxx::__normal_iterator.114", align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.114", align 8
  %14 = alloca ptr, align 8
  %15 = alloca %"class.std::unique_ptr.88", align 8
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator.114", align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator.114", align 8
  %21 = alloca ptr, align 8
  %22 = alloca %"class.std::unique_ptr.88", align 8
  %23 = alloca ptr, align 8
  %24 = alloca %"class.__gnu_cxx::__normal_iterator.115", align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator.115", align 8
  %26 = alloca ptr, align 8
  %27 = alloca %"class.std::unique_ptr.96", align 8
  %28 = alloca ptr, align 8
  %29 = alloca %"class.__gnu_cxx::__normal_iterator.115", align 8
  %30 = alloca %"class.__gnu_cxx::__normal_iterator.115", align 8
  %31 = alloca ptr, align 8
  %32 = alloca %"class.std::unique_ptr.96", align 8
  %33 = alloca %"class.__gnu_cxx::__normal_iterator.116", align 8
  %34 = alloca %"class.__gnu_cxx::__normal_iterator.116", align 8
  %35 = alloca %"class.__gnu_cxx::__normal_iterator.116", align 8
  %36 = alloca %"class.__gnu_cxx::__normal_iterator.116", align 8
  %37 = alloca %"class.std::vector", align 8
  %38 = alloca %"class.__gnu_cxx::__normal_iterator.118", align 8
  %39 = alloca %"class.__gnu_cxx::__normal_iterator.117", align 8
  %40 = alloca %"class.__gnu_cxx::__normal_iterator.117", align 8
  %41 = alloca %"class.__gnu_cxx::__normal_iterator.117", align 8
  %42 = alloca %"class.__gnu_cxx::__normal_iterator.117", align 8
  %43 = alloca %"class.__gnu_cxx::__normal_iterator.118", align 8
  %44 = alloca %"class.__gnu_cxx::__normal_iterator.117", align 8
  %45 = alloca %"class.__gnu_cxx::__normal_iterator.117", align 8
  %46 = alloca %"class.__gnu_cxx::__normal_iterator.117", align 8
  %47 = alloca %"class.__gnu_cxx::__normal_iterator.117", align 8
  %48 = alloca ptr, align 8
  %49 = alloca %"class.__gnu_cxx::__normal_iterator.118", align 8
  %50 = alloca %"class.__gnu_cxx::__normal_iterator.117", align 8
  %51 = alloca %"class.__gnu_cxx::__normal_iterator.117", align 8
  %52 = alloca %"class.__gnu_cxx::__normal_iterator.117", align 8
  %53 = alloca %"class.__gnu_cxx::__normal_iterator.117", align 8
  %54 = alloca %"class.ir_list::InstructionIteratorImpl", align 8
  %55 = alloca %"class.boost::intrusive::list_iterator", align 8
  %56 = alloca %"class.boost::intrusive::list_iterator", align 8
  %57 = alloca %"class.cfg::InstructionIteratorImpl", align 8
  %58 = alloca %"class.cfg::InstructionIteratorImpl", align 8
  %59 = alloca %"class.ir_list::InstructionIteratorImpl", align 8
  %60 = alloca %"class.ir_list::InstructionIteratorImpl", align 8
  %61 = alloca %"class.ir_list::InstructionIterableImpl", align 8
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  store ptr %3, ptr %8, align 8, !tbaa !5
  %62 = load ptr, ptr %5, align 8
  %63 = load ptr, ptr %8, align 8, !tbaa !5
  %64 = call noundef ptr @_ZNK7ir_list23InstructionIteratorImplILb0EEptEv(ptr noundef nonnull align 8 dereferenceable(16) %63)
  %65 = getelementptr inbounds %struct.MethodItemEntry, ptr %64, i32 0, i32 2
  %66 = load ptr, ptr %65, align 8, !tbaa !9
  %67 = call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %66)
  %68 = call noundef zeroext i1 @_ZN3cfg11CFGMutation11is_terminalE8IROpcode(i16 noundef zeroext %67)
  br i1 %68, label %69, label %75

69:                                               ; preds = %4
  %70 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 2
  %71 = call noundef zeroext i1 @_ZNK5boost8optionalISt6vectorIP13IRInstructionSaIS3_EEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %70) #9
  br i1 %71, label %75, label %72

72:                                               ; preds = %69
  %73 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 3
  %74 = call noundef zeroext i1 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %73) #9
  br i1 %74, label %75, label %76

75:                                               ; preds = %72, %69, %4
  br label %78

76:                                               ; preds = %72
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef @.str.15, ptr noundef @.str.6, i32 noundef 198, ptr noundef @__PRETTY_FUNCTION__._ZN3cfg11CFGMutation9ChangeSet5applyERNS_16ControlFlowGraphEPNS_5BlockERN7ir_list23InstructionIteratorImplILb0EEE, i32 noundef 2, ptr noundef @.str.16) #10
  unreachable

77:                                               ; No predecessors!
  br label %78

78:                                               ; preds = %77, %75
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #9
  store i8 0, ptr %9, align 1, !tbaa !10
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #9
  %79 = load ptr, ptr %7, align 8, !tbaa !5
  %80 = load ptr, ptr %8, align 8, !tbaa !5
  call void @_ZN3cfg5Block27to_cfg_instruction_iteratorERKN7ir_list23InstructionIteratorImplILb0EEEb(ptr dead_on_unwind writable sret(%"class.cfg::InstructionIteratorImpl") align 8 %10, ptr noundef nonnull align 8 dereferenceable(104) %79, ptr noundef nonnull align 8 dereferenceable(16) %80, i1 noundef zeroext false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #9
  %81 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 4
  store ptr %81, ptr %11, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  %82 = load ptr, ptr %11, align 8, !tbaa !5
  %83 = call ptr @_ZNSt6vectorISt10unique_ptrI11DexPositionSt14default_deleteIS1_EESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %82) #9
  %84 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.114", ptr %12, i32 0, i32 0
  store ptr %83, ptr %84, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #9
  %85 = load ptr, ptr %11, align 8, !tbaa !5
  %86 = call ptr @_ZNSt6vectorISt10unique_ptrI11DexPositionSt14default_deleteIS1_EESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %85) #9
  %87 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.114", ptr %13, i32 0, i32 0
  store ptr %86, ptr %87, align 8
  br label %88

88:                                               ; preds = %96, %78
  %89 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrI11DexPositionSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %13) #9
  br i1 %89, label %91, label %90

90:                                               ; preds = %88
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  br label %102

91:                                               ; preds = %88
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #9
  %92 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10unique_ptrI11DexPositionSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %12) #9
  store ptr %92, ptr %14, align 8, !tbaa !5
  %93 = load ptr, ptr %6, align 8, !tbaa !5
  %94 = load ptr, ptr %14, align 8, !tbaa !5
  call void @_ZNSt10unique_ptrI11DexPositionSt14default_deleteIS0_EEC2EOS3_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %94) #9
  invoke void @_ZN3cfg16ControlFlowGraph13insert_beforeERKNS_23InstructionIteratorImplILb0EEESt10unique_ptrI11DexPositionSt14default_deleteIS6_EE(ptr noundef nonnull align 8 dereferenceable(160) %93, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef %15)
          to label %95 unwind label %98

95:                                               ; preds = %91
  call void @_ZNSt10unique_ptrI11DexPositionSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  br label %96

96:                                               ; preds = %95
  %97 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10unique_ptrI11DexPositionSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %12) #9
  br label %88

98:                                               ; preds = %91
  %99 = landingpad { ptr, i32 }
          cleanup
  %100 = extractvalue { ptr, i32 } %99, 0
  store ptr %100, ptr %16, align 8
  %101 = extractvalue { ptr, i32 } %99, 1
  store i32 %101, ptr %17, align 4
  call void @_ZNSt10unique_ptrI11DexPositionSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #9
  br label %457

102:                                              ; preds = %90
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #9
  %103 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 5
  store ptr %103, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #9
  %104 = load ptr, ptr %18, align 8, !tbaa !5
  %105 = call ptr @_ZNSt6vectorISt10unique_ptrI11DexPositionSt14default_deleteIS1_EESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %104) #9
  %106 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.114", ptr %19, i32 0, i32 0
  store ptr %105, ptr %106, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #9
  %107 = load ptr, ptr %18, align 8, !tbaa !5
  %108 = call ptr @_ZNSt6vectorISt10unique_ptrI11DexPositionSt14default_deleteIS1_EESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %107) #9
  %109 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.114", ptr %20, i32 0, i32 0
  store ptr %108, ptr %109, align 8
  br label %110

110:                                              ; preds = %118, %102
  %111 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrI11DexPositionSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %19, ptr noundef nonnull align 8 dereferenceable(8) %20) #9
  br i1 %111, label %113, label %112

112:                                              ; preds = %110
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  br label %124

113:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #9
  %114 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10unique_ptrI11DexPositionSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %19) #9
  store ptr %114, ptr %21, align 8, !tbaa !5
  %115 = load ptr, ptr %6, align 8, !tbaa !5
  %116 = load ptr, ptr %21, align 8, !tbaa !5
  call void @_ZNSt10unique_ptrI11DexPositionSt14default_deleteIS0_EEC2EOS3_(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(8) %116) #9
  invoke void @_ZN3cfg16ControlFlowGraph12insert_afterERKNS_23InstructionIteratorImplILb0EEESt10unique_ptrI11DexPositionSt14default_deleteIS6_EE(ptr noundef nonnull align 8 dereferenceable(160) %115, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef %22)
          to label %117 unwind label %120

117:                                              ; preds = %113
  call void @_ZNSt10unique_ptrI11DexPositionSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  br label %118

118:                                              ; preds = %117
  %119 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10unique_ptrI11DexPositionSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %19) #9
  br label %110

120:                                              ; preds = %113
  %121 = landingpad { ptr, i32 }
          cleanup
  %122 = extractvalue { ptr, i32 } %121, 0
  store ptr %122, ptr %16, align 8
  %123 = extractvalue { ptr, i32 } %121, 1
  store i32 %123, ptr %17, align 4
  call void @_ZNSt10unique_ptrI11DexPositionSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %22) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  br label %457

124:                                              ; preds = %112
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  %125 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 6
  store ptr %125, ptr %23, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #9
  %126 = load ptr, ptr %23, align 8, !tbaa !5
  %127 = call ptr @_ZNSt6vectorISt10unique_ptrI11SourceBlockSt14default_deleteIS1_EESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %126) #9
  %128 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.115", ptr %24, i32 0, i32 0
  store ptr %127, ptr %128, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  %129 = load ptr, ptr %23, align 8, !tbaa !5
  %130 = call ptr @_ZNSt6vectorISt10unique_ptrI11SourceBlockSt14default_deleteIS1_EESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %129) #9
  %131 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.115", ptr %25, i32 0, i32 0
  store ptr %130, ptr %131, align 8
  br label %132

132:                                              ; preds = %140, %124
  %133 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrI11SourceBlockSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %24, ptr noundef nonnull align 8 dereferenceable(8) %25) #9
  br i1 %133, label %135, label %134

134:                                              ; preds = %132
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  br label %146

135:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #9
  %136 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10unique_ptrI11SourceBlockSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #9
  store ptr %136, ptr %26, align 8, !tbaa !5
  %137 = load ptr, ptr %6, align 8, !tbaa !5
  %138 = load ptr, ptr %26, align 8, !tbaa !5
  call void @_ZNSt10unique_ptrI11SourceBlockSt14default_deleteIS0_EEC2EOS3_(ptr noundef nonnull align 8 dereferenceable(8) %27, ptr noundef nonnull align 8 dereferenceable(8) %138) #9
  invoke void @_ZN3cfg16ControlFlowGraph13insert_beforeERKNS_23InstructionIteratorImplILb0EEESt10unique_ptrI11SourceBlockSt14default_deleteIS6_EE(ptr noundef nonnull align 8 dereferenceable(160) %137, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef %27)
          to label %139 unwind label %142

139:                                              ; preds = %135
  call void @_ZNSt10unique_ptrI11SourceBlockSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  br label %140

140:                                              ; preds = %139
  %141 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10unique_ptrI11SourceBlockSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %24) #9
  br label %132

142:                                              ; preds = %135
  %143 = landingpad { ptr, i32 }
          cleanup
  %144 = extractvalue { ptr, i32 } %143, 0
  store ptr %144, ptr %16, align 8
  %145 = extractvalue { ptr, i32 } %143, 1
  store i32 %145, ptr %17, align 4
  call void @_ZNSt10unique_ptrI11SourceBlockSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %27) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  br label %457

146:                                              ; preds = %134
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #9
  %147 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 7
  store ptr %147, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  %148 = load ptr, ptr %28, align 8, !tbaa !5
  %149 = call ptr @_ZNSt6vectorISt10unique_ptrI11SourceBlockSt14default_deleteIS1_EESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %148) #9
  %150 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.115", ptr %29, i32 0, i32 0
  store ptr %149, ptr %150, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #9
  %151 = load ptr, ptr %28, align 8, !tbaa !5
  %152 = call ptr @_ZNSt6vectorISt10unique_ptrI11SourceBlockSt14default_deleteIS1_EESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %151) #9
  %153 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.115", ptr %30, i32 0, i32 0
  store ptr %152, ptr %153, align 8
  br label %154

154:                                              ; preds = %162, %146
  %155 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrI11SourceBlockSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #9
  br i1 %155, label %157, label %156

156:                                              ; preds = %154
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  br label %168

157:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  %158 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10unique_ptrI11SourceBlockSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #9
  store ptr %158, ptr %31, align 8, !tbaa !5
  %159 = load ptr, ptr %6, align 8, !tbaa !5
  %160 = load ptr, ptr %31, align 8, !tbaa !5
  call void @_ZNSt10unique_ptrI11SourceBlockSt14default_deleteIS0_EEC2EOS3_(ptr noundef nonnull align 8 dereferenceable(8) %32, ptr noundef nonnull align 8 dereferenceable(8) %160) #9
  invoke void @_ZN3cfg16ControlFlowGraph12insert_afterERKNS_23InstructionIteratorImplILb0EEESt10unique_ptrI11SourceBlockSt14default_deleteIS6_EE(ptr noundef nonnull align 8 dereferenceable(160) %159, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef %32)
          to label %161 unwind label %164

161:                                              ; preds = %157
  call void @_ZNSt10unique_ptrI11SourceBlockSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  br label %162

162:                                              ; preds = %161
  %163 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10unique_ptrI11SourceBlockSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #9
  br label %154

164:                                              ; preds = %157
  %165 = landingpad { ptr, i32 }
          cleanup
  %166 = extractvalue { ptr, i32 } %165, 0
  store ptr %166, ptr %16, align 8
  %167 = extractvalue { ptr, i32 } %165, 1
  store i32 %167, ptr %17, align 4
  call void @_ZNSt10unique_ptrI11SourceBlockSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  br label %457

168:                                              ; preds = %156
  %169 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 2
  %170 = call noundef zeroext i1 @_ZNK5boost8optionalISt6vectorIP13IRInstructionSaIS3_EEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %169) #9
  br i1 %170, label %171, label %177

171:                                              ; preds = %168
  %172 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 9
  %173 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %172) #9
  br i1 %173, label %174, label %178

174:                                              ; preds = %171
  %175 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 8
  %176 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %175) #9
  br i1 %176, label %177, label %178

177:                                              ; preds = %174, %168
  br label %180

178:                                              ; preds = %174, %171
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef @.str.17, ptr noundef @.str.6, i32 noundef 222, ptr noundef @__PRETTY_FUNCTION__._ZN3cfg11CFGMutation9ChangeSet5applyERNS_16ControlFlowGraphEPNS_5BlockERN7ir_list23InstructionIteratorImplILb0EEE, i32 noundef 2, ptr noundef @.str.7) #10
  unreachable

179:                                              ; No predecessors!
  br label %180

180:                                              ; preds = %179, %177
  %181 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 3
  %182 = call noundef zeroext i1 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %181) #9
  br i1 %182, label %189, label %183

183:                                              ; preds = %180
  %184 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 9
  %185 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %184) #9
  br i1 %185, label %186, label %190

186:                                              ; preds = %183
  %187 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 8
  %188 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %187) #9
  br i1 %188, label %189, label %190

189:                                              ; preds = %186, %180
  br label %192

190:                                              ; preds = %186, %183
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef @.str.18, ptr noundef @.str.6, i32 noundef 224, ptr noundef @__PRETTY_FUNCTION__._ZN3cfg11CFGMutation9ChangeSet5applyERNS_16ControlFlowGraphEPNS_5BlockERN7ir_list23InstructionIteratorImplILb0EEE, i32 noundef 2, ptr noundef @.str.7) #10
  unreachable

191:                                              ; No predecessors!
  br label %192

192:                                              ; preds = %191, %189
  %193 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 1
  %194 = call noundef zeroext i1 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %193) #9
  br i1 %194, label %201, label %195

195:                                              ; preds = %192
  %196 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 9
  %197 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %196) #9
  br i1 %197, label %198, label %202

198:                                              ; preds = %195
  %199 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 8
  %200 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %199) #9
  br i1 %200, label %201, label %202

201:                                              ; preds = %198, %192
  br label %204

202:                                              ; preds = %198, %195
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef @.str.19, ptr noundef @.str.6, i32 noundef 226, ptr noundef @__PRETTY_FUNCTION__._ZN3cfg11CFGMutation9ChangeSet5applyERNS_16ControlFlowGraphEPNS_5BlockERN7ir_list23InstructionIteratorImplILb0EEE, i32 noundef 2, ptr noundef @.str.7) #10
  unreachable

203:                                              ; No predecessors!
  br label %204

204:                                              ; preds = %203, %201
  %205 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 9
  %206 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %205) #9
  br i1 %206, label %210, label %207

207:                                              ; preds = %204
  %208 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 8
  %209 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %208) #9
  br i1 %209, label %210, label %211

210:                                              ; preds = %207, %204
  br label %213

211:                                              ; preds = %207
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef @.str.20, ptr noundef @.str.6, i32 noundef 227, ptr noundef @__PRETTY_FUNCTION__._ZN3cfg11CFGMutation9ChangeSet5applyERNS_16ControlFlowGraphEPNS_5BlockERN7ir_list23InstructionIteratorImplILb0EEE, i32 noundef 2, ptr noundef @.str.7) #10
  unreachable

212:                                              ; No predecessors!
  br label %213

213:                                              ; preds = %212, %210
  %214 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 9
  %215 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %214) #9
  br i1 %215, label %216, label %219

216:                                              ; preds = %213
  %217 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 8
  %218 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %217) #9
  br i1 %218, label %243, label %219

219:                                              ; preds = %216, %213
  %220 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 8
  %221 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %220) #9
  br i1 %221, label %232, label %222

222:                                              ; preds = %219
  %223 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #9
  %224 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 8
  %225 = call ptr @_ZNSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %224) #9
  %226 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.116", ptr %33, i32 0, i32 0
  store ptr %225, ptr %226, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #9
  %227 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 8
  %228 = call ptr @_ZNSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %227) #9
  %229 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.116", ptr %34, i32 0, i32 0
  store ptr %228, ptr %229, align 8
  %230 = call noundef zeroext i1 @_ZN3cfg16ControlFlowGraph13insert_beforeIN9__gnu_cxx17__normal_iteratorIPSt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS8_EES7_I11DexPositionS9_ISC_EEEESt6vectorISF_SaISF_EEEEEEbRKNS_23InstructionIteratorImplILb0EEERKT_SR_(ptr noundef nonnull align 8 dereferenceable(160) %223, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(8) %34)
  %231 = zext i1 %230 to i8
  store i8 %231, ptr %9, align 1, !tbaa !10
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #9
  br label %242

232:                                              ; preds = %219
  %233 = load ptr, ptr %6, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #9
  %234 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 9
  %235 = call ptr @_ZNSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %234) #9
  %236 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.116", ptr %35, i32 0, i32 0
  store ptr %235, ptr %236, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #9
  %237 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 9
  %238 = call ptr @_ZNSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %237) #9
  %239 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.116", ptr %36, i32 0, i32 0
  store ptr %238, ptr %239, align 8
  %240 = call noundef zeroext i1 @_ZN3cfg16ControlFlowGraph12insert_afterIN9__gnu_cxx17__normal_iteratorIPSt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS8_EES7_I11DexPositionS9_ISC_EEEESt6vectorISF_SaISF_EEEEEEbRKNS_23InstructionIteratorImplILb0EEERKT_SR_(ptr noundef nonnull align 8 dereferenceable(160) %233, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(8) %35, ptr noundef nonnull align 8 dereferenceable(8) %36)
  %241 = zext i1 %240 to i8
  store i8 %241, ptr %9, align 1, !tbaa !10
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #9
  br label %242

242:                                              ; preds = %232, %222
  br label %447

243:                                              ; preds = %216
  %244 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 2
  %245 = call noundef zeroext i1 @_ZNK5boost8optionalISt6vectorIP13IRInstructionSaIS3_EEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %244) #9
  br i1 %245, label %254, label %246

246:                                              ; preds = %243
  %247 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 3
  %248 = call noundef zeroext i1 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %247) #9
  br i1 %248, label %249, label %254

249:                                              ; preds = %246
  %250 = load ptr, ptr %6, align 8, !tbaa !5
  %251 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 1
  %252 = call noundef zeroext i1 @_ZN3cfg16ControlFlowGraph13insert_beforeERKNS_23InstructionIteratorImplILb0EEERKSt6vectorIP13IRInstructionSaIS7_EE(ptr noundef nonnull align 8 dereferenceable(160) %250, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(24) %251)
  %253 = zext i1 %252 to i8
  store i8 %253, ptr %9, align 1, !tbaa !10
  br label %446

254:                                              ; preds = %246, %243
  %255 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 2
  %256 = call noundef zeroext i1 @_ZNK5boost8optionalISt6vectorIP13IRInstructionSaIS3_EEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %255) #9
  br i1 %256, label %265, label %257

257:                                              ; preds = %254
  %258 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 1
  %259 = call noundef zeroext i1 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %258) #9
  br i1 %259, label %260, label %265

260:                                              ; preds = %257
  %261 = load ptr, ptr %6, align 8, !tbaa !5
  %262 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 3
  %263 = call noundef zeroext i1 @_ZN3cfg16ControlFlowGraph12insert_afterERKNS_23InstructionIteratorImplILb0EEERKSt6vectorIP13IRInstructionSaIS7_EE(ptr noundef nonnull align 8 dereferenceable(160) %261, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(24) %262)
  %264 = zext i1 %263 to i8
  store i8 %264, ptr %9, align 1, !tbaa !10
  br label %445

265:                                              ; preds = %257, %254
  call void @llvm.lifetime.start.p0(i64 24, ptr %37) #9
  call void @_ZNSt6vectorIP13IRInstructionSaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #9
  %266 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 1
  %267 = call noundef zeroext i1 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %266) #9
  br i1 %267, label %297, label %268

268:                                              ; preds = %265
  %269 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 1
  %270 = call noundef i64 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %269) #9
  invoke void @_ZNSt6vectorIP13IRInstructionSaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %37, i64 noundef %270)
          to label %271 unwind label %289

271:                                              ; preds = %268
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #9
  %272 = call ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %37) #9
  %273 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.117", ptr %39, i32 0, i32 0
  store ptr %272, ptr %273, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKP13IRInstructionSt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 8 dereferenceable(8) %39) #9
  %274 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 1
  %275 = call ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %274) #9
  %276 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.117", ptr %40, i32 0, i32 0
  store ptr %275, ptr %276, align 8
  %277 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 1
  %278 = call ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %277) #9
  %279 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.117", ptr %41, i32 0, i32 0
  store ptr %278, ptr %279, align 8
  %280 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.118", ptr %38, i32 0, i32 0
  %281 = load ptr, ptr %280, align 8
  %282 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.117", ptr %40, i32 0, i32 0
  %283 = load ptr, ptr %282, align 8
  %284 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.117", ptr %41, i32 0, i32 0
  %285 = load ptr, ptr %284, align 8
  %286 = invoke ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE6insertIN9__gnu_cxx17__normal_iteratorIPS1_S3_EEvEES8_NS6_IPKS1_S3_EET_SC_(ptr noundef nonnull align 8 dereferenceable(24) %37, ptr %281, ptr %283, ptr %285)
          to label %287 unwind label %293

287:                                              ; preds = %271
  %288 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.117", ptr %42, i32 0, i32 0
  store ptr %286, ptr %288, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  br label %297

289:                                              ; preds = %439, %356, %304, %300, %268
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %16, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %17, align 4
  br label %444

293:                                              ; preds = %271
  %294 = landingpad { ptr, i32 }
          cleanup
  %295 = extractvalue { ptr, i32 } %294, 0
  store ptr %295, ptr %16, align 8
  %296 = extractvalue { ptr, i32 } %294, 1
  store i32 %296, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #9
  br label %444

297:                                              ; preds = %287, %265
  %298 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 2
  %299 = call noundef zeroext i1 @_ZNK5boost8optionalISt6vectorIP13IRInstructionSaIS3_EEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %298) #9
  br i1 %299, label %300, label %333

300:                                              ; preds = %297
  %301 = call noundef i64 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %37) #9
  %302 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 2
  %303 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5boost8optionalISt6vectorIP13IRInstructionSaIS3_EEE3getEv(ptr noundef nonnull align 8 dereferenceable(32) %302)
          to label %304 unwind label %289

304:                                              ; preds = %300
  %305 = call noundef i64 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %303) #9
  %306 = add i64 %301, %305
  invoke void @_ZNSt6vectorIP13IRInstructionSaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %37, i64 noundef %306)
          to label %307 unwind label %289

307:                                              ; preds = %304
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #9
  %308 = call ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %37) #9
  %309 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.117", ptr %44, i32 0, i32 0
  store ptr %308, ptr %309, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKP13IRInstructionSt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %43, ptr noundef nonnull align 8 dereferenceable(8) %44) #9
  %310 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 2
  %311 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5boost8optionalISt6vectorIP13IRInstructionSaIS3_EEE3getEv(ptr noundef nonnull align 8 dereferenceable(32) %310)
          to label %312 unwind label %329

312:                                              ; preds = %307
  %313 = call ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %311) #9
  %314 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.117", ptr %45, i32 0, i32 0
  store ptr %313, ptr %314, align 8
  %315 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 2
  %316 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5boost8optionalISt6vectorIP13IRInstructionSaIS3_EEE3getEv(ptr noundef nonnull align 8 dereferenceable(32) %315)
          to label %317 unwind label %329

317:                                              ; preds = %312
  %318 = call ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %316) #9
  %319 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.117", ptr %46, i32 0, i32 0
  store ptr %318, ptr %319, align 8
  %320 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.118", ptr %43, i32 0, i32 0
  %321 = load ptr, ptr %320, align 8
  %322 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.117", ptr %45, i32 0, i32 0
  %323 = load ptr, ptr %322, align 8
  %324 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.117", ptr %46, i32 0, i32 0
  %325 = load ptr, ptr %324, align 8
  %326 = invoke ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE6insertIN9__gnu_cxx17__normal_iteratorIPS1_S3_EEvEES8_NS6_IPKS1_S3_EET_SC_(ptr noundef nonnull align 8 dereferenceable(24) %37, ptr %321, ptr %323, ptr %325)
          to label %327 unwind label %329

327:                                              ; preds = %317
  %328 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.117", ptr %47, i32 0, i32 0
  store ptr %326, ptr %328, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  br label %353

329:                                              ; preds = %317, %312, %307
  %330 = landingpad { ptr, i32 }
          cleanup
  %331 = extractvalue { ptr, i32 } %330, 0
  store ptr %331, ptr %16, align 8
  %332 = extractvalue { ptr, i32 } %330, 1
  store i32 %332, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #9
  br label %444

333:                                              ; preds = %297
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #9
  %334 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 32) #11
          to label %335 unwind label %344

335:                                              ; preds = %333
  %336 = load ptr, ptr %8, align 8, !tbaa !5
  %337 = invoke noundef ptr @_ZNK7ir_list23InstructionIteratorImplILb0EEptEv(ptr noundef nonnull align 8 dereferenceable(16) %336)
          to label %338 unwind label %348

338:                                              ; preds = %335
  %339 = getelementptr inbounds %struct.MethodItemEntry, ptr %337, i32 0, i32 2
  %340 = load ptr, ptr %339, align 8, !tbaa !9
  invoke void @_ZN13IRInstructionC1ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %334, ptr noundef nonnull align 8 dereferenceable(32) %340)
          to label %341 unwind label %348

341:                                              ; preds = %338
  store ptr %334, ptr %48, align 8, !tbaa !5
  %342 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE12emplace_backIJRS1_EEES5_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %37, ptr noundef nonnull align 8 dereferenceable(8) %48)
          to label %343 unwind label %344

343:                                              ; preds = %341
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  br label %353

344:                                              ; preds = %341, %333
  %345 = landingpad { ptr, i32 }
          cleanup
  %346 = extractvalue { ptr, i32 } %345, 0
  store ptr %346, ptr %16, align 8
  %347 = extractvalue { ptr, i32 } %345, 1
  store i32 %347, ptr %17, align 4
  br label %352

348:                                              ; preds = %338, %335
  %349 = landingpad { ptr, i32 }
          cleanup
  %350 = extractvalue { ptr, i32 } %349, 0
  store ptr %350, ptr %16, align 8
  %351 = extractvalue { ptr, i32 } %349, 1
  store i32 %351, ptr %17, align 4
  call void @_ZdlPvm(ptr noundef %334, i64 noundef 32) #12
  br label %352

352:                                              ; preds = %348, %344
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #9
  br label %444

353:                                              ; preds = %343, %327
  %354 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 3
  %355 = call noundef zeroext i1 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %354) #9
  br i1 %355, label %383, label %356

356:                                              ; preds = %353
  %357 = call noundef i64 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %37) #9
  %358 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 3
  %359 = call noundef i64 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %358) #9
  %360 = add i64 %357, %359
  invoke void @_ZNSt6vectorIP13IRInstructionSaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %37, i64 noundef %360)
          to label %361 unwind label %289

361:                                              ; preds = %356
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #9
  %362 = call ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %37) #9
  %363 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.117", ptr %50, i32 0, i32 0
  store ptr %362, ptr %363, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKP13IRInstructionSt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %49, ptr noundef nonnull align 8 dereferenceable(8) %50) #9
  %364 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 3
  %365 = call ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %364) #9
  %366 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.117", ptr %51, i32 0, i32 0
  store ptr %365, ptr %366, align 8
  %367 = getelementptr inbounds %"class.cfg::CFGMutation::ChangeSet", ptr %62, i32 0, i32 3
  %368 = call ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %367) #9
  %369 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.117", ptr %52, i32 0, i32 0
  store ptr %368, ptr %369, align 8
  %370 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.118", ptr %49, i32 0, i32 0
  %371 = load ptr, ptr %370, align 8
  %372 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.117", ptr %51, i32 0, i32 0
  %373 = load ptr, ptr %372, align 8
  %374 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.117", ptr %52, i32 0, i32 0
  %375 = load ptr, ptr %374, align 8
  %376 = invoke ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE6insertIN9__gnu_cxx17__normal_iteratorIPS1_S3_EEvEES8_NS6_IPKS1_S3_EET_SC_(ptr noundef nonnull align 8 dereferenceable(24) %37, ptr %371, ptr %373, ptr %375)
          to label %377 unwind label %379

377:                                              ; preds = %361
  %378 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.117", ptr %53, i32 0, i32 0
  store ptr %376, ptr %378, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  br label %383

379:                                              ; preds = %361
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %16, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #9
  br label %444

383:                                              ; preds = %377, %353
  %384 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %54) #9
  invoke void @_ZN7ir_list23InstructionIteratorImplILb0EEppEi(ptr dead_on_unwind writable sret(%"class.ir_list::InstructionIteratorImpl") align 8 %54, ptr noundef nonnull align 8 dereferenceable(16) %384, i32 noundef 0)
          to label %385 unwind label %412

385:                                              ; preds = %383
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #9
  %386 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr %57) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr %58) #9
  invoke void @_ZNK7ir_list23InstructionIteratorImplILb0EE6unwrapEv(ptr dead_on_unwind writable sret(%"class.boost::intrusive::list_iterator") align 8 %55, ptr noundef nonnull align 8 dereferenceable(16) %386)
          to label %387 unwind label %416

387:                                              ; preds = %385
  call void @llvm.lifetime.start.p0(i64 8, ptr %56) #9
  %388 = load ptr, ptr %7, align 8, !tbaa !5
  invoke void @_ZN3cfg5Block3endEv(ptr dead_on_unwind writable sret(%"class.boost::intrusive::list_iterator") align 8 %56, ptr noundef nonnull align 8 dereferenceable(104) %388)
          to label %389 unwind label %420

389:                                              ; preds = %387
  %390 = invoke noundef zeroext i1 @_ZN5boost9intrusiveneERKNS0_13list_iteratorINS0_8mhtraitsI15MethodItemEntryNS0_16list_member_hookIJEEEXadL_ZNS3_10list_hook_EEEEELb0EEES9_(ptr noundef nonnull align 8 dereferenceable(8) %55, ptr noundef nonnull align 8 dereferenceable(8) %56)
          to label %391 unwind label %420

391:                                              ; preds = %389
  br i1 %390, label %392, label %407

392:                                              ; preds = %391
  %393 = invoke noundef ptr @_ZNK3cfg23InstructionIteratorImplILb0EEptEv(ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %394 unwind label %420

394:                                              ; preds = %392
  %395 = getelementptr inbounds %struct.MethodItemEntry, ptr %393, i32 0, i32 2
  %396 = load ptr, ptr %395, align 8, !tbaa !9
  %397 = invoke noundef zeroext i1 @_ZNK13IRInstruction19has_move_result_anyEv(ptr noundef nonnull align 8 dereferenceable(32) %396)
          to label %398 unwind label %420

398:                                              ; preds = %394
  br i1 %397, label %399, label %407

399:                                              ; preds = %398
  %400 = load ptr, ptr %6, align 8, !tbaa !5
  invoke void @_ZN3cfg16ControlFlowGraph14move_result_ofERKNS_23InstructionIteratorImplILb0EEE(ptr dead_on_unwind writable sret(%"class.cfg::InstructionIteratorImpl") align 8 %57, ptr noundef nonnull align 8 dereferenceable(160) %400, ptr noundef nonnull align 8 dereferenceable(32) %10)
          to label %401 unwind label %424

401:                                              ; preds = %399
  %402 = load ptr, ptr %7, align 8, !tbaa !5
  %403 = load ptr, ptr %8, align 8, !tbaa !5
  invoke void @_ZN3cfg5Block27to_cfg_instruction_iteratorERKN7ir_list23InstructionIteratorImplILb0EEEb(ptr dead_on_unwind writable sret(%"class.cfg::InstructionIteratorImpl") align 8 %58, ptr noundef nonnull align 8 dereferenceable(104) %402, ptr noundef nonnull align 8 dereferenceable(16) %403, i1 noundef zeroext false)
          to label %404 unwind label %428

404:                                              ; preds = %401
  %405 = invoke noundef zeroext i1 @_ZNK3cfg23InstructionIteratorImplILb0EEeqERKS1_(ptr noundef nonnull align 8 dereferenceable(32) %57, ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %406 unwind label %428

406:                                              ; preds = %404
  br label %407

407:                                              ; preds = %406, %398, %391
  %408 = phi i1 [ false, %398 ], [ false, %391 ], [ %405, %406 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  br i1 %408, label %409, label %439

409:                                              ; preds = %407
  %410 = load ptr, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %59) #9
  invoke void @_ZN7ir_list23InstructionIteratorImplILb0EEppEi(ptr dead_on_unwind writable sret(%"class.ir_list::InstructionIteratorImpl") align 8 %59, ptr noundef nonnull align 8 dereferenceable(16) %410, i32 noundef 0)
          to label %411 unwind label %435

411:                                              ; preds = %409
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #9
  br label %439

412:                                              ; preds = %383
  %413 = landingpad { ptr, i32 }
          cleanup
  %414 = extractvalue { ptr, i32 } %413, 0
  store ptr %414, ptr %16, align 8
  %415 = extractvalue { ptr, i32 } %413, 1
  store i32 %415, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %54) #9
  br label %444

416:                                              ; preds = %385
  %417 = landingpad { ptr, i32 }
          cleanup
  %418 = extractvalue { ptr, i32 } %417, 0
  store ptr %418, ptr %16, align 8
  %419 = extractvalue { ptr, i32 } %417, 1
  store i32 %419, ptr %17, align 4
  br label %434

420:                                              ; preds = %394, %392, %389, %387
  %421 = landingpad { ptr, i32 }
          cleanup
  %422 = extractvalue { ptr, i32 } %421, 0
  store ptr %422, ptr %16, align 8
  %423 = extractvalue { ptr, i32 } %421, 1
  store i32 %423, ptr %17, align 4
  br label %433

424:                                              ; preds = %399
  %425 = landingpad { ptr, i32 }
          cleanup
  %426 = extractvalue { ptr, i32 } %425, 0
  store ptr %426, ptr %16, align 8
  %427 = extractvalue { ptr, i32 } %425, 1
  store i32 %427, ptr %17, align 4
  br label %432

428:                                              ; preds = %404, %401
  %429 = landingpad { ptr, i32 }
          cleanup
  %430 = extractvalue { ptr, i32 } %429, 0
  store ptr %430, ptr %16, align 8
  %431 = extractvalue { ptr, i32 } %429, 1
  store i32 %431, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %58) #9
  br label %432

432:                                              ; preds = %428, %424
  call void @llvm.lifetime.end.p0(i64 32, ptr %57) #9
  br label %433

433:                                              ; preds = %432, %420
  call void @llvm.lifetime.end.p0(i64 8, ptr %56) #9
  br label %434

434:                                              ; preds = %433, %416
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #9
  br label %444

435:                                              ; preds = %409
  %436 = landingpad { ptr, i32 }
          cleanup
  %437 = extractvalue { ptr, i32 } %436, 0
  store ptr %437, ptr %16, align 8
  %438 = extractvalue { ptr, i32 } %436, 1
  store i32 %438, ptr %17, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %59) #9
  br label %444

439:                                              ; preds = %411, %407
  %440 = load ptr, ptr %6, align 8, !tbaa !5
  %441 = invoke noundef zeroext i1 @_ZN3cfg16ControlFlowGraph13replace_insnsERKNS_23InstructionIteratorImplILb0EEERKSt6vectorIP13IRInstructionSaIS7_EE(ptr noundef nonnull align 8 dereferenceable(160) %440, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(24) %37)
          to label %442 unwind label %289

442:                                              ; preds = %439
  %443 = zext i1 %441 to i8
  store i8 %443, ptr %9, align 1, !tbaa !10
  call void @_ZNSt6vectorIP13IRInstructionSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %37) #9
  br label %445

444:                                              ; preds = %435, %434, %412, %379, %352, %329, %293, %289
  call void @_ZNSt6vectorIP13IRInstructionSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr %37) #9
  br label %457

445:                                              ; preds = %442, %260
  br label %446

446:                                              ; preds = %445, %249
  br label %447

447:                                              ; preds = %446, %242
  %448 = load i8, ptr %9, align 1, !tbaa !10, !range !12, !noundef !13
  %449 = trunc i8 %448 to i1
  br i1 %449, label %450, label %454

450:                                              ; preds = %447
  call void @llvm.lifetime.start.p0(i64 16, ptr %60) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr %61) #9
  %451 = load ptr, ptr %7, align 8, !tbaa !5
  call void @_ZN7ir_list23InstructionIterableImplILb0EEC2IN3cfg5BlockEEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %61, ptr noundef %451)
  call void @_ZNK7ir_list23InstructionIterableImplILb0EE3endEv(ptr dead_on_unwind writable sret(%"class.ir_list::InstructionIteratorImpl") align 8 %60, ptr noundef nonnull align 8 dereferenceable(16) %61)
  %452 = load ptr, ptr %8, align 8, !tbaa !5
  %453 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN7ir_list23InstructionIteratorImplILb0EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %452, ptr noundef nonnull align 8 dereferenceable(16) %60)
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr %60) #9
  br label %454

454:                                              ; preds = %450, %447
  %455 = load i8, ptr %9, align 1, !tbaa !10, !range !12, !noundef !13
  %456 = trunc i8 %455 to i1
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #9
  ret i1 %456

457:                                              ; preds = %444, %164, %142, %120, %98
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #9
  br label %458

458:                                              ; preds = %457
  %459 = load ptr, ptr %16, align 8
  %460 = load i32, ptr %17, align 4
  %461 = insertvalue { ptr, i32 } poison, ptr %459, 0
  %462 = insertvalue { ptr, i32 } %461, i32 %460, 1
  resume { ptr, i32 } %462
}

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

declare void @_ZN3cfg5Block3endEv(ptr dead_on_unwind writable sret(%"class.boost::intrusive::list_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(104)) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cfg11CFGMutation11is_terminalE8IROpcode(i16 noundef zeroext) #6 align 2

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

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

declare void @_ZN3cfg5Block27to_cfg_instruction_iteratorERKN7ir_list23InstructionIteratorImplILb0EEEb(ptr dead_on_unwind writable sret(%"class.cfg::InstructionIteratorImpl") align 8, ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(16), i1 noundef zeroext) #5

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

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

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

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

declare void @_ZN3cfg16ControlFlowGraph13insert_beforeERKNS_23InstructionIteratorImplILb0EEESt10unique_ptrI11DexPositionSt14default_deleteIS6_EE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #5

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

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

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

declare void @_ZN3cfg16ControlFlowGraph12insert_afterERKNS_23InstructionIteratorImplILb0EEESt10unique_ptrI11DexPositionSt14default_deleteIS6_EE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #5

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

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

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

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

declare void @_ZN3cfg16ControlFlowGraph13insert_beforeERKNS_23InstructionIteratorImplILb0EEESt10unique_ptrI11SourceBlockSt14default_deleteIS6_EE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #5

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

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

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

declare void @_ZN3cfg16ControlFlowGraph12insert_afterERKNS_23InstructionIteratorImplILb0EEESt10unique_ptrI11SourceBlockSt14default_deleteIS6_EE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #5

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cfg16ControlFlowGraph13insert_beforeIN9__gnu_cxx17__normal_iteratorIPSt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS8_EES7_I11DexPositionS9_ISC_EEEESt6vectorISF_SaISF_EEEEEEbRKNS_23InstructionIteratorImplILb0EEERKT_SR_(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cfg16ControlFlowGraph12insert_afterIN9__gnu_cxx17__normal_iteratorIPSt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS8_EES7_I11DexPositionS9_ISC_EEEESt6vectorISF_SaISF_EEEEEEbRKNS_23InstructionIteratorImplILb0EEERKT_SR_(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) #2 align 2

declare noundef zeroext i1 @_ZN3cfg16ControlFlowGraph13insert_beforeERKNS_23InstructionIteratorImplILb0EEERKSt6vectorIP13IRInstructionSaIS7_EE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) #5

declare noundef zeroext i1 @_ZN3cfg16ControlFlowGraph12insert_afterERKNS_23InstructionIteratorImplILb0EEERKSt6vectorIP13IRInstructionSaIS7_EE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) #5

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

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

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

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

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

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

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

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) #7

declare void @_ZN13IRInstructionC1ERKS_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #5

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) #8

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7ir_list23InstructionIteratorImplILb0EEppEi(ptr dead_on_unwind noalias writable sret(%"class.ir_list::InstructionIteratorImpl") align 8, ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7ir_list23InstructionIteratorImplILb0EE6unwrapEv(ptr dead_on_unwind noalias writable sret(%"class.boost::intrusive::list_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(16)) #2 align 2

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

declare void @_ZN3cfg16ControlFlowGraph14move_result_ofERKNS_23InstructionIteratorImplILb0EEE(ptr dead_on_unwind writable sret(%"class.cfg::InstructionIteratorImpl") align 8, ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32)) #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK3cfg23InstructionIteratorImplILb0EEeqERKS1_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) #2 align 2

declare noundef zeroext i1 @_ZN3cfg16ControlFlowGraph13replace_insnsERKNS_23InstructionIteratorImplILb0EEERKSt6vectorIP13IRInstructionSaIS7_EE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) #5

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7ir_list23InstructionIteratorImplILb0EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) #3 align 2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { noreturn "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 = { 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 #3 = { 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 #4 = { 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 #5 = { "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 = { 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 #7 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }
attributes #10 = { noreturn }
attributes #11 = { builtin allocsize(0) }
attributes #12 = { builtin nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!7, !7, i64 0}
!10 = !{!11, !11, i64 0}
!11 = !{!"bool", !7, i64 0}
!12 = !{i8 0, i8 2}
!13 = !{}


; 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"

%"class.ir_list::InstructionIteratorImpl" = type { %"class.boost::intrusive::list_iterator", %"class.boost::intrusive::list_iterator" }
%"class.boost::intrusive::list_iterator" = type { %"struct.boost::intrusive::iiterator_members" }
%"struct.boost::intrusive::iiterator_members" = type { ptr }
%"class.cfg::InstructionIteratorImpl" = type { ptr, %"struct.std::_Rb_tree_const_iterator", %"class.ir_list::InstructionIteratorImpl" }
%"struct.std::_Rb_tree_const_iterator" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.114" = type { ptr }
%"class.std::unique_ptr.88" = type { %"struct.std::__uniq_ptr_data.89" }
%"struct.std::__uniq_ptr_data.89" = type { %"class.std::__uniq_ptr_impl.90" }
%"class.std::__uniq_ptr_impl.90" = type { %"class.std::tuple.91" }
%"class.std::tuple.91" = type { %"struct.std::_Tuple_impl.92" }
%"struct.std::_Tuple_impl.92" = type { %"struct.std::_Head_base.95" }
%"struct.std::_Head_base.95" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.115" = type { ptr }
%"class.std::unique_ptr.96" = type { %"struct.std::__uniq_ptr_data.97" }
%"struct.std::__uniq_ptr_data.97" = type { %"class.std::__uniq_ptr_impl.98" }
%"class.std::__uniq_ptr_impl.98" = type { %"class.std::tuple.99" }
%"class.std::tuple.99" = type { %"struct.std::_Tuple_impl.100" }
%"struct.std::_Tuple_impl.100" = type { %"struct.std::_Head_base.103" }
%"struct.std::_Head_base.103" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.116" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<IRInstruction *, std::allocator<IRInstruction *>>::_Vector_impl" }
%"struct.std::_Vector_base<IRInstruction *, std::allocator<IRInstruction *>>::_Vector_impl" = type { %"struct.std::_Vector_base<IRInstruction *, std::allocator<IRInstruction *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<IRInstruction *, std::allocator<IRInstruction *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator.118" = type { ptr }
%"class.__gnu_cxx::__normal_iterator.117" = type { ptr }
%"class.ir_list::InstructionIterableImpl" = type { %"class.boost::intrusive::list_iterator", %"class.boost::intrusive::list_iterator" }

@.str.6 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [84 x i8], align 1
@__PRETTY_FUNCTION__._ZN3cfg11CFGMutation9ChangeSet5applyERNS_16ControlFlowGraphEPNS_5BlockERN7ir_list23InstructionIteratorImplILb0EEE = external hidden unnamed_addr constant [106 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [102 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [75 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: noreturn
declare void @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, ptr noundef, ...) local_unnamed_addr #1

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7ir_list23InstructionIterableImplILb0EE3endEv(ptr dead_on_unwind noalias writable sret(%"class.ir_list::InstructionIteratorImpl") align 8, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN3cfg11CFGMutation9ChangeSet5applyERNS_16ControlFlowGraphEPNS_5BlockERN7ir_list23InstructionIteratorImplILb0EEE(ptr noundef nonnull align 8 dereferenceable(232) %0, ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(16) %3) local_unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca %"class.cfg::InstructionIteratorImpl", align 8
  %6 = alloca %"class.__gnu_cxx::__normal_iterator.114", align 8
  %7 = alloca %"class.__gnu_cxx::__normal_iterator.114", align 8
  %8 = alloca %"class.std::unique_ptr.88", align 8
  %9 = alloca %"class.__gnu_cxx::__normal_iterator.114", align 8
  %10 = alloca %"class.__gnu_cxx::__normal_iterator.114", align 8
  %11 = alloca %"class.std::unique_ptr.88", align 8
  %12 = alloca %"class.__gnu_cxx::__normal_iterator.115", align 8
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.115", align 8
  %14 = alloca %"class.std::unique_ptr.96", align 8
  %15 = alloca %"class.__gnu_cxx::__normal_iterator.115", align 8
  %16 = alloca %"class.__gnu_cxx::__normal_iterator.115", align 8
  %17 = alloca %"class.std::unique_ptr.96", align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator.116", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator.116", align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator.116", align 8
  %21 = alloca %"class.__gnu_cxx::__normal_iterator.116", align 8
  %22 = alloca %"class.std::vector", align 8
  %23 = alloca %"class.__gnu_cxx::__normal_iterator.118", align 8
  %24 = alloca %"class.__gnu_cxx::__normal_iterator.117", align 8
  %25 = alloca %"class.__gnu_cxx::__normal_iterator.118", align 8
  %26 = alloca %"class.__gnu_cxx::__normal_iterator.117", align 8
  %27 = alloca ptr, align 8
  %28 = alloca %"class.__gnu_cxx::__normal_iterator.118", align 8
  %29 = alloca %"class.__gnu_cxx::__normal_iterator.117", align 8
  %30 = alloca %"class.ir_list::InstructionIteratorImpl", align 8
  %31 = alloca %"class.boost::intrusive::list_iterator", align 8
  %32 = alloca %"class.boost::intrusive::list_iterator", align 8
  %33 = alloca %"class.cfg::InstructionIteratorImpl", align 8
  %34 = alloca %"class.cfg::InstructionIteratorImpl", align 8
  %35 = alloca %"class.ir_list::InstructionIteratorImpl", align 8
  %36 = alloca %"class.ir_list::InstructionIteratorImpl", align 8
  %37 = alloca %"class.ir_list::InstructionIterableImpl", align 8
  %38 = tail call noundef ptr @_ZNK7ir_list23InstructionIteratorImplILb0EEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3)
  %39 = getelementptr inbounds i8, ptr %38, i64 24
  %40 = load ptr, ptr %39, align 8, !tbaa !5
  %41 = tail call noundef zeroext i16 @_ZNK13IRInstruction6opcodeEv(ptr noundef nonnull align 8 dereferenceable(32) %40)
  %42 = tail call noundef zeroext i1 @_ZN3cfg11CFGMutation11is_terminalE8IROpcode(i16 noundef zeroext %41)
  br i1 %42, label %43, label %50

43:                                               ; preds = %4
  %44 = getelementptr inbounds i8, ptr %0, i64 32
  %45 = tail call noundef zeroext i1 @_ZNK5boost8optionalISt6vectorIP13IRInstructionSaIS3_EEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %44) #9
  br i1 %45, label %50, label %46

46:                                               ; preds = %43
  %47 = getelementptr inbounds i8, ptr %0, i64 64
  %48 = tail call noundef zeroext i1 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %47) #9
  br i1 %48, label %50, label %49

49:                                               ; preds = %46
  tail call void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.6, i32 noundef 198, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN3cfg11CFGMutation9ChangeSet5applyERNS_16ControlFlowGraphEPNS_5BlockERN7ir_list23InstructionIteratorImplILb0EEE, i32 noundef 2, ptr noundef nonnull @.str.16) #10
  unreachable

50:                                               ; preds = %4, %43, %46
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #9
  call void @_ZN3cfg5Block27to_cfg_instruction_iteratorERKN7ir_list23InstructionIteratorImplILb0EEEb(ptr dead_on_unwind nonnull writable sret(%"class.cfg::InstructionIteratorImpl") align 8 %5, ptr noundef nonnull align 8 dereferenceable(104) %2, ptr noundef nonnull align 8 dereferenceable(16) %3, i1 noundef zeroext false)
  %51 = getelementptr inbounds i8, ptr %0, i64 88
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #9
  %52 = call ptr @_ZNSt6vectorISt10unique_ptrI11DexPositionSt14default_deleteIS1_EESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %51) #9
  store ptr %52, ptr %6, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #9
  %53 = call ptr @_ZNSt6vectorISt10unique_ptrI11DexPositionSt14default_deleteIS1_EESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %51) #9
  store ptr %53, ptr %7, align 8
  %54 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrI11DexPositionSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #9
  br i1 %54, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %60, %50
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  %55 = getelementptr inbounds i8, ptr %0, i64 112
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #9
  %56 = call ptr @_ZNSt6vectorISt10unique_ptrI11DexPositionSt14default_deleteIS1_EESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %55) #9
  store ptr %56, ptr %9, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #9
  %57 = call ptr @_ZNSt6vectorISt10unique_ptrI11DexPositionSt14default_deleteIS1_EESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %55) #9
  store ptr %57, ptr %10, align 8
  %58 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrI11DexPositionSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %10) #9
  br i1 %58, label %.lr.ph65, label %._crit_edge66

.lr.ph:                                           ; preds = %50, %60
  %59 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10unique_ptrI11DexPositionSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  call void @_ZNSt10unique_ptrI11DexPositionSt14default_deleteIS0_EEC2EOS3_(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 8 dereferenceable(8) %59) #9
  invoke void @_ZN3cfg16ControlFlowGraph13insert_beforeERKNS_23InstructionIteratorImplILb0EEESt10unique_ptrI11DexPositionSt14default_deleteIS6_EE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull %8)
          to label %60 unwind label %63

60:                                               ; preds = %.lr.ph
  call void @_ZNSt10unique_ptrI11DexPositionSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #9
  %61 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10unique_ptrI11DexPositionSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %6) #9
  %62 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrI11DexPositionSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %7) #9
  br i1 %62, label %.lr.ph, label %._crit_edge

63:                                               ; preds = %.lr.ph
  %64 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt10unique_ptrI11DexPositionSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %8) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #9
  br label %262

._crit_edge66:                                    ; preds = %70, %._crit_edge
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #9
  %65 = getelementptr inbounds i8, ptr %0, i64 136
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #9
  %66 = call ptr @_ZNSt6vectorISt10unique_ptrI11SourceBlockSt14default_deleteIS1_EESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %65) #9
  store ptr %66, ptr %12, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #9
  %67 = call ptr @_ZNSt6vectorISt10unique_ptrI11SourceBlockSt14default_deleteIS1_EESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %65) #9
  store ptr %67, ptr %13, align 8
  %68 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrI11SourceBlockSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %13) #9
  br i1 %68, label %.lr.ph68, label %._crit_edge69

.lr.ph65:                                         ; preds = %._crit_edge, %70
  %69 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10unique_ptrI11DexPositionSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %9) #9
  call void @_ZNSt10unique_ptrI11DexPositionSt14default_deleteIS0_EEC2EOS3_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %69) #9
  invoke void @_ZN3cfg16ControlFlowGraph12insert_afterERKNS_23InstructionIteratorImplILb0EEESt10unique_ptrI11DexPositionSt14default_deleteIS6_EE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull %11)
          to label %70 unwind label %73

70:                                               ; preds = %.lr.ph65
  call void @_ZNSt10unique_ptrI11DexPositionSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #9
  %71 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10unique_ptrI11DexPositionSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %9) #9
  %72 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrI11DexPositionSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %10) #9
  br i1 %72, label %.lr.ph65, label %._crit_edge66

73:                                               ; preds = %.lr.ph65
  %74 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt10unique_ptrI11DexPositionSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %11) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #9
  br label %262

._crit_edge69:                                    ; preds = %80, %._crit_edge66
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #9
  %75 = getelementptr inbounds i8, ptr %0, i64 160
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #9
  %76 = call ptr @_ZNSt6vectorISt10unique_ptrI11SourceBlockSt14default_deleteIS1_EESaIS4_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %75) #9
  store ptr %76, ptr %15, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #9
  %77 = call ptr @_ZNSt6vectorISt10unique_ptrI11SourceBlockSt14default_deleteIS1_EESaIS4_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %75) #9
  store ptr %77, ptr %16, align 8
  %78 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrI11SourceBlockSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %16) #9
  br i1 %78, label %.lr.ph71, label %._crit_edge72

.lr.ph68:                                         ; preds = %._crit_edge66, %80
  %79 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10unique_ptrI11SourceBlockSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %12) #9
  call void @_ZNSt10unique_ptrI11SourceBlockSt14default_deleteIS0_EEC2EOS3_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %79) #9
  invoke void @_ZN3cfg16ControlFlowGraph13insert_beforeERKNS_23InstructionIteratorImplILb0EEESt10unique_ptrI11SourceBlockSt14default_deleteIS6_EE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull %14)
          to label %80 unwind label %83

80:                                               ; preds = %.lr.ph68
  call void @_ZNSt10unique_ptrI11SourceBlockSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #9
  %81 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10unique_ptrI11SourceBlockSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %12) #9
  %82 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrI11SourceBlockSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(8) %13) #9
  br i1 %82, label %.lr.ph68, label %._crit_edge69

83:                                               ; preds = %.lr.ph68
  %84 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt10unique_ptrI11SourceBlockSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %14) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #9
  br label %262

._crit_edge72:                                    ; preds = %88, %._crit_edge69
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #9
  %85 = getelementptr inbounds i8, ptr %0, i64 32
  %86 = call noundef zeroext i1 @_ZNK5boost8optionalISt6vectorIP13IRInstructionSaIS3_EEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %85) #9
  br i1 %86, label %93, label %100

.lr.ph71:                                         ; preds = %._crit_edge69, %88
  %87 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPSt10unique_ptrI11SourceBlockSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #9
  call void @_ZNSt10unique_ptrI11SourceBlockSt14default_deleteIS0_EEC2EOS3_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %87) #9
  invoke void @_ZN3cfg16ControlFlowGraph12insert_afterERKNS_23InstructionIteratorImplILb0EEESt10unique_ptrI11SourceBlockSt14default_deleteIS6_EE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull %17)
          to label %88 unwind label %91

88:                                               ; preds = %.lr.ph71
  call void @_ZNSt10unique_ptrI11SourceBlockSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #9
  %89 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPSt10unique_ptrI11SourceBlockSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %15) #9
  %90 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPSt10unique_ptrI11SourceBlockSt14default_deleteIS2_EESt6vectorIS5_SaIS5_EEEEbRKNS_17__normal_iteratorIT_T0_EESF_(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %16) #9
  br i1 %90, label %.lr.ph71, label %._crit_edge72

91:                                               ; preds = %.lr.ph71
  %92 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt10unique_ptrI11SourceBlockSt14default_deleteIS0_EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %17) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #9
  br label %262

93:                                               ; preds = %._crit_edge72
  %94 = getelementptr inbounds i8, ptr %0, i64 208
  %95 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %94) #9
  br i1 %95, label %96, label %99

96:                                               ; preds = %93
  %97 = getelementptr inbounds i8, ptr %0, i64 184
  %98 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %97) #9
  br i1 %98, label %100, label %99

99:                                               ; preds = %96, %93
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.6, i32 noundef 222, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN3cfg11CFGMutation9ChangeSet5applyERNS_16ControlFlowGraphEPNS_5BlockERN7ir_list23InstructionIteratorImplILb0EEE, i32 noundef 2, ptr noundef nonnull @.str.7) #10
  unreachable

100:                                              ; preds = %._crit_edge72, %96
  %101 = getelementptr inbounds i8, ptr %0, i64 64
  %102 = call noundef zeroext i1 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %101) #9
  br i1 %102, label %110, label %103

103:                                              ; preds = %100
  %104 = getelementptr inbounds i8, ptr %0, i64 208
  %105 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %104) #9
  br i1 %105, label %106, label %109

106:                                              ; preds = %103
  %107 = getelementptr inbounds i8, ptr %0, i64 184
  %108 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %107) #9
  br i1 %108, label %110, label %109

109:                                              ; preds = %106, %103
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.6, i32 noundef 224, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN3cfg11CFGMutation9ChangeSet5applyERNS_16ControlFlowGraphEPNS_5BlockERN7ir_list23InstructionIteratorImplILb0EEE, i32 noundef 2, ptr noundef nonnull @.str.7) #10
  unreachable

110:                                              ; preds = %100, %106
  %111 = getelementptr inbounds i8, ptr %0, i64 8
  %112 = call noundef zeroext i1 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %111) #9
  br i1 %112, label %120, label %113

113:                                              ; preds = %110
  %114 = getelementptr inbounds i8, ptr %0, i64 208
  %115 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %114) #9
  br i1 %115, label %116, label %119

116:                                              ; preds = %113
  %117 = getelementptr inbounds i8, ptr %0, i64 184
  %118 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %117) #9
  br i1 %118, label %120, label %119

119:                                              ; preds = %116, %113
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.6, i32 noundef 226, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN3cfg11CFGMutation9ChangeSet5applyERNS_16ControlFlowGraphEPNS_5BlockERN7ir_list23InstructionIteratorImplILb0EEE, i32 noundef 2, ptr noundef nonnull @.str.7) #10
  unreachable

120:                                              ; preds = %110, %116
  %121 = getelementptr inbounds i8, ptr %0, i64 208
  %122 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %121) #9
  br i1 %122, label %127, label %123

123:                                              ; preds = %120
  %124 = getelementptr inbounds i8, ptr %0, i64 184
  %125 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %124) #9
  br i1 %125, label %127, label %126

126:                                              ; preds = %123
  call void (ptr, ptr, i32, ptr, i32, ptr, ...) @_Z11assert_failPKcS0_jS0_10RedexErrorS0_z(ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.6, i32 noundef 227, ptr noundef nonnull @__PRETTY_FUNCTION__._ZN3cfg11CFGMutation9ChangeSet5applyERNS_16ControlFlowGraphEPNS_5BlockERN7ir_list23InstructionIteratorImplILb0EEE, i32 noundef 2, ptr noundef nonnull @.str.7) #10
  unreachable

127:                                              ; preds = %120, %123
  %128 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %121) #9
  br i1 %128, label %129, label %132

129:                                              ; preds = %127
  %130 = getelementptr inbounds i8, ptr %0, i64 184
  %131 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %130) #9
  br i1 %131, label %139, label %132

132:                                              ; preds = %129, %127
  %133 = getelementptr inbounds i8, ptr %0, i64 184
  %134 = call noundef zeroext i1 @_ZNKSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %133) #9
  br i1 %134, label %135, label %255

135:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #9
  %136 = call ptr @_ZNSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %121) #9
  store ptr %136, ptr %20, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #9
  %137 = call ptr @_ZNSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %121) #9
  store ptr %137, ptr %21, align 8
  %138 = call noundef zeroext i1 @_ZN3cfg16ControlFlowGraph12insert_afterIN9__gnu_cxx17__normal_iteratorIPSt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS8_EES7_I11DexPositionS9_ISC_EEEESt6vectorISF_SaISF_EEEEEEbRKNS_23InstructionIteratorImplILb0EEERKT_SR_(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %21)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #9
  br i1 %138, label %259, label %261

139:                                              ; preds = %129
  %140 = call noundef zeroext i1 @_ZNK5boost8optionalISt6vectorIP13IRInstructionSaIS3_EEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %85) #9
  br i1 %140, label %145, label %141

141:                                              ; preds = %139
  %142 = call noundef zeroext i1 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %101) #9
  br i1 %142, label %143, label %145

143:                                              ; preds = %141
  %144 = call noundef zeroext i1 @_ZN3cfg16ControlFlowGraph13insert_beforeERKNS_23InstructionIteratorImplILb0EEERKSt6vectorIP13IRInstructionSaIS7_EE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(24) %111)
  br i1 %144, label %259, label %261

145:                                              ; preds = %141, %139
  %146 = call noundef zeroext i1 @_ZNK5boost8optionalISt6vectorIP13IRInstructionSaIS3_EEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %85) #9
  br i1 %146, label %151, label %147

147:                                              ; preds = %145
  %148 = call noundef zeroext i1 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %111) #9
  br i1 %148, label %149, label %151

149:                                              ; preds = %147
  %150 = call noundef zeroext i1 @_ZN3cfg16ControlFlowGraph12insert_afterERKNS_23InstructionIteratorImplILb0EEERKSt6vectorIP13IRInstructionSaIS7_EE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(24) %101)
  br i1 %150, label %259, label %261

151:                                              ; preds = %147, %145
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %22) #9
  call void @_ZNSt6vectorIP13IRInstructionSaIS1_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #9
  %152 = call noundef zeroext i1 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %111) #9
  br i1 %152, label %166, label %153

153:                                              ; preds = %151
  %154 = call noundef i64 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %111) #9
  invoke void @_ZNSt6vectorIP13IRInstructionSaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %154)
          to label %155 unwind label %162

155:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #9
  %156 = call ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %22) #9
  store ptr %156, ptr %24, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKP13IRInstructionSt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %24) #9
  %157 = call ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %111) #9
  %158 = call ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %111) #9
  %159 = load ptr, ptr %23, align 8
  %160 = invoke ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE6insertIN9__gnu_cxx17__normal_iteratorIPS1_S3_EEvEES8_NS6_IPKS1_S3_EET_SC_(ptr noundef nonnull align 8 dereferenceable(24) %22, ptr %159, ptr %157, ptr %158)
          to label %161 unwind label %164

161:                                              ; preds = %155
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #9
  br label %166

162:                                              ; preds = %251, %204, %171, %168, %153
  %163 = landingpad { ptr, i32 }
          cleanup
  br label %254

164:                                              ; preds = %155
  %165 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #9
  br label %254

166:                                              ; preds = %161, %151
  %167 = call noundef zeroext i1 @_ZNK5boost8optionalISt6vectorIP13IRInstructionSaIS3_EEE9has_valueEv(ptr noundef nonnull align 8 dereferenceable(32) %85) #9
  br i1 %167, label %168, label %187

168:                                              ; preds = %166
  %169 = call noundef i64 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %22) #9
  %170 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5boost8optionalISt6vectorIP13IRInstructionSaIS3_EEE3getEv(ptr noundef nonnull align 8 dereferenceable(32) %85)
          to label %171 unwind label %162

171:                                              ; preds = %168
  %172 = call noundef i64 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %170) #9
  %173 = add i64 %172, %169
  invoke void @_ZNSt6vectorIP13IRInstructionSaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %173)
          to label %174 unwind label %162

174:                                              ; preds = %171
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #9
  %175 = call ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %22) #9
  store ptr %175, ptr %26, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKP13IRInstructionSt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %25, ptr noundef nonnull align 8 dereferenceable(8) %26) #9
  %176 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5boost8optionalISt6vectorIP13IRInstructionSaIS3_EEE3getEv(ptr noundef nonnull align 8 dereferenceable(32) %85)
          to label %177 unwind label %185

177:                                              ; preds = %174
  %178 = call ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %176) #9
  %179 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN5boost8optionalISt6vectorIP13IRInstructionSaIS3_EEE3getEv(ptr noundef nonnull align 8 dereferenceable(32) %85)
          to label %180 unwind label %185

180:                                              ; preds = %177
  %181 = call ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %179) #9
  %182 = load ptr, ptr %25, align 8
  %183 = invoke ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE6insertIN9__gnu_cxx17__normal_iteratorIPS1_S3_EEvEES8_NS6_IPKS1_S3_EET_SC_(ptr noundef nonnull align 8 dereferenceable(24) %22, ptr %182, ptr %178, ptr %181)
          to label %184 unwind label %185

184:                                              ; preds = %180
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #9
  br label %202

185:                                              ; preds = %180, %177, %174
  %186 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #9
  br label %254

187:                                              ; preds = %166
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #9
  %188 = invoke noalias noundef nonnull dereferenceable(32) ptr @_Znwm(i64 noundef 32) #11
          to label %189 unwind label %197

189:                                              ; preds = %187
  %190 = invoke noundef ptr @_ZNK7ir_list23InstructionIteratorImplILb0EEptEv(ptr noundef nonnull align 8 dereferenceable(16) %3)
          to label %191 unwind label %199

191:                                              ; preds = %189
  %192 = getelementptr inbounds i8, ptr %190, i64 24
  %193 = load ptr, ptr %192, align 8, !tbaa !5
  invoke void @_ZN13IRInstructionC1ERKS_(ptr noundef nonnull align 8 dereferenceable(32) %188, ptr noundef nonnull align 8 dereferenceable(32) %193)
          to label %194 unwind label %199

194:                                              ; preds = %191
  store ptr %188, ptr %27, align 8, !tbaa !8
  %195 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE12emplace_backIJRS1_EEES5_DpOT_(ptr noundef nonnull align 8 dereferenceable(24) %22, ptr noundef nonnull align 8 dereferenceable(8) %27)
          to label %196 unwind label %197

196:                                              ; preds = %194
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #9
  br label %202

197:                                              ; preds = %194, %187
  %198 = landingpad { ptr, i32 }
          cleanup
  br label %201

199:                                              ; preds = %191, %189
  %200 = landingpad { ptr, i32 }
          cleanup
  call void @_ZdlPvm(ptr noundef nonnull %188, i64 noundef 32) #12
  br label %201

201:                                              ; preds = %199, %197
  %.pn = phi { ptr, i32 } [ %198, %197 ], [ %200, %199 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #9
  br label %254

202:                                              ; preds = %196, %184
  %203 = call noundef zeroext i1 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %101) #9
  br i1 %203, label %217, label %204

204:                                              ; preds = %202
  %205 = call noundef i64 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %22) #9
  %206 = call noundef i64 @_ZNKSt6vectorIP13IRInstructionSaIS1_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %101) #9
  %207 = add i64 %206, %205
  invoke void @_ZNSt6vectorIP13IRInstructionSaIS1_EE7reserveEm(ptr noundef nonnull align 8 dereferenceable(24) %22, i64 noundef %207)
          to label %208 unwind label %162

208:                                              ; preds = %204
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #9
  %209 = call ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %22) #9
  store ptr %209, ptr %29, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKP13IRInstructionSt6vectorIS2_SaIS2_EEEC2IPS2_vEERKNS0_IT_S7_EE(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %29) #9
  %210 = call ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %101) #9
  %211 = call ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %101) #9
  %212 = load ptr, ptr %28, align 8
  %213 = invoke ptr @_ZNSt6vectorIP13IRInstructionSaIS1_EE6insertIN9__gnu_cxx17__normal_iteratorIPS1_S3_EEvEES8_NS6_IPKS1_S3_EET_SC_(ptr noundef nonnull align 8 dereferenceable(24) %22, ptr %212, ptr %210, ptr %211)
          to label %214 unwind label %215

214:                                              ; preds = %208
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #9
  br label %217

215:                                              ; preds = %208
  %216 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #9
  br label %254

217:                                              ; preds = %214, %202
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %30) #9
  invoke void @_ZN7ir_list23InstructionIteratorImplILb0EEppEi(ptr dead_on_unwind nonnull writable sret(%"class.ir_list::InstructionIteratorImpl") align 8 %30, ptr noundef nonnull align 8 dereferenceable(16) %3, i32 noundef 0)
          to label %218 unwind label %236

218:                                              ; preds = %217
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %33) #9
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %34) #9
  invoke void @_ZNK7ir_list23InstructionIteratorImplILb0EE6unwrapEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::intrusive::list_iterator") align 8 %31, ptr noundef nonnull align 8 dereferenceable(16) %3)
          to label %219 unwind label %238

219:                                              ; preds = %218
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #9
  invoke void @_ZN3cfg5Block3endEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::intrusive::list_iterator") align 8 %32, ptr noundef nonnull align 8 dereferenceable(104) %2)
          to label %220 unwind label %240

220:                                              ; preds = %219
  %221 = call noundef zeroext i1 @_ZN5boost9intrusiveneERKNS0_13list_iteratorINS0_8mhtraitsI15MethodItemEntryNS0_16list_member_hookIJEEEXadL_ZNS3_10list_hook_EEEEELb0EEES9_(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %32)
  br i1 %221, label %222, label %.critedge

222:                                              ; preds = %220
  %223 = invoke noundef ptr @_ZNK3cfg23InstructionIteratorImplILb0EEptEv(ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %224 unwind label %240

224:                                              ; preds = %222
  %225 = getelementptr inbounds i8, ptr %223, i64 24
  %226 = load ptr, ptr %225, align 8, !tbaa !5
  %227 = invoke noundef zeroext i1 @_ZNK13IRInstruction19has_move_result_anyEv(ptr noundef nonnull align 8 dereferenceable(32) %226)
          to label %228 unwind label %240

228:                                              ; preds = %224
  br i1 %227, label %229, label %.critedge

229:                                              ; preds = %228
  invoke void @_ZN3cfg16ControlFlowGraph14move_result_ofERKNS_23InstructionIteratorImplILb0EEE(ptr dead_on_unwind nonnull writable sret(%"class.cfg::InstructionIteratorImpl") align 8 %33, ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %230 unwind label %242

230:                                              ; preds = %229
  invoke void @_ZN3cfg5Block27to_cfg_instruction_iteratorERKN7ir_list23InstructionIteratorImplILb0EEEb(ptr dead_on_unwind nonnull writable sret(%"class.cfg::InstructionIteratorImpl") align 8 %34, ptr noundef nonnull align 8 dereferenceable(104) %2, ptr noundef nonnull align 8 dereferenceable(16) %3, i1 noundef zeroext false)
          to label %231 unwind label %244

231:                                              ; preds = %230
  %232 = invoke noundef zeroext i1 @_ZNK3cfg23InstructionIteratorImplILb0EEeqERKS1_(ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %233 unwind label %244

233:                                              ; preds = %231
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #9
  br i1 %232, label %234, label %251

234:                                              ; preds = %233
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %35) #9
  invoke void @_ZN7ir_list23InstructionIteratorImplILb0EEppEi(ptr dead_on_unwind nonnull writable sret(%"class.ir_list::InstructionIteratorImpl") align 8 %35, ptr noundef nonnull align 8 dereferenceable(16) %3, i32 noundef 0)
          to label %235 unwind label %249

235:                                              ; preds = %234
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #9
  br label %251

236:                                              ; preds = %217
  %237 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %30) #9
  br label %254

238:                                              ; preds = %218
  %239 = landingpad { ptr, i32 }
          cleanup
  br label %248

240:                                              ; preds = %224, %222, %219
  %241 = landingpad { ptr, i32 }
          cleanup
  br label %247

242:                                              ; preds = %229
  %243 = landingpad { ptr, i32 }
          cleanup
  br label %246

244:                                              ; preds = %231, %230
  %245 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #9
  br label %246

246:                                              ; preds = %244, %242
  %.pn54 = phi { ptr, i32 } [ %245, %244 ], [ %243, %242 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #9
  br label %247

247:                                              ; preds = %246, %240
  %.pn54.pn = phi { ptr, i32 } [ %.pn54, %246 ], [ %241, %240 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #9
  br label %248

248:                                              ; preds = %247, %238
  %.pn54.pn.pn = phi { ptr, i32 } [ %.pn54.pn, %247 ], [ %239, %238 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #9
  br label %254

249:                                              ; preds = %234
  %250 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #9
  br label %254

.critedge:                                        ; preds = %220, %228
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %34) #9
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %33) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #9
  br label %251

251:                                              ; preds = %.critedge, %235, %233
  %252 = invoke noundef zeroext i1 @_ZN3cfg16ControlFlowGraph13replace_insnsERKNS_23InstructionIteratorImplILb0EEERKSt6vectorIP13IRInstructionSaIS7_EE(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(24) %22)
          to label %253 unwind label %162

253:                                              ; preds = %251
  call void @_ZNSt6vectorIP13IRInstructionSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #9
  br i1 %252, label %259, label %261

254:                                              ; preds = %249, %248, %236, %215, %201, %185, %164, %162
  %.pn58 = phi { ptr, i32 } [ %163, %162 ], [ %250, %249 ], [ %.pn54.pn.pn, %248 ], [ %237, %236 ], [ %216, %215 ], [ %186, %185 ], [ %.pn, %201 ], [ %165, %164 ]
  call void @_ZNSt6vectorIP13IRInstructionSaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %22) #9
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) #9
  br label %262

255:                                              ; preds = %132
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #9
  %256 = call ptr @_ZNSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %133) #9
  store ptr %256, ptr %18, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #9
  %257 = call ptr @_ZNSt6vectorISt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS4_EES3_I11DexPositionS5_IS8_EEEESaISB_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %133) #9
  store ptr %257, ptr %19, align 8
  %258 = call noundef zeroext i1 @_ZN3cfg16ControlFlowGraph13insert_beforeIN9__gnu_cxx17__normal_iteratorIPSt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS8_EES7_I11DexPositionS9_ISC_EEEESt6vectorISF_SaISF_EEEEEEbRKNS_23InstructionIteratorImplILb0EEERKT_SR_(ptr noundef nonnull align 8 dereferenceable(160) %1, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19)
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #9
  br i1 %258, label %259, label %261

259:                                              ; preds = %135, %143, %149, %253, %255
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %36) #9
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %37) #9
  call void @_ZN7ir_list23InstructionIterableImplILb0EEC2IN3cfg5BlockEEEPT_(ptr noundef nonnull align 8 dereferenceable(16) %37, ptr noundef nonnull %2)
  call void @_ZNK7ir_list23InstructionIterableImplILb0EE3endEv(ptr dead_on_unwind nonnull writable sret(%"class.ir_list::InstructionIteratorImpl") align 8 %36, ptr noundef nonnull align 8 dereferenceable(16) %37)
  %260 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZN7ir_list23InstructionIteratorImplILb0EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 8 dereferenceable(16) %36)
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #9
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %36) #9
  br label %261

261:                                              ; preds = %135, %143, %149, %253, %259, %255
  %.0.in62 = phi i1 [ false, %253 ], [ true, %259 ], [ false, %255 ], [ false, %149 ], [ false, %143 ], [ false, %135 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #9
  ret i1 %.0.in62

262:                                              ; preds = %254, %91, %83, %73, %63
  %.pn60 = phi { ptr, i32 } [ %64, %63 ], [ %74, %73 ], [ %84, %83 ], [ %92, %91 ], [ %.pn58, %254 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #9
  resume { ptr, i32 } %.pn60
}

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

declare void @_ZN3cfg5Block3endEv(ptr dead_on_unwind writable sret(%"class.boost::intrusive::list_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(104)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cfg11CFGMutation11is_terminalE8IROpcode(i16 noundef zeroext) local_unnamed_addr #6 align 2

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

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

declare void @_ZN3cfg5Block27to_cfg_instruction_iteratorERKN7ir_list23InstructionIteratorImplILb0EEEb(ptr dead_on_unwind writable sret(%"class.cfg::InstructionIteratorImpl") align 8, ptr noundef nonnull align 8 dereferenceable(104), ptr noundef nonnull align 8 dereferenceable(16), i1 noundef zeroext) local_unnamed_addr #5

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

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

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

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

declare void @_ZN3cfg16ControlFlowGraph13insert_beforeERKNS_23InstructionIteratorImplILb0EEESt10unique_ptrI11DexPositionSt14default_deleteIS6_EE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #5

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

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

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

declare void @_ZN3cfg16ControlFlowGraph12insert_afterERKNS_23InstructionIteratorImplILb0EEESt10unique_ptrI11DexPositionSt14default_deleteIS6_EE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #5

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

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

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

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

declare void @_ZN3cfg16ControlFlowGraph13insert_beforeERKNS_23InstructionIteratorImplILb0EEESt10unique_ptrI11SourceBlockSt14default_deleteIS6_EE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #5

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

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

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

declare void @_ZN3cfg16ControlFlowGraph12insert_afterERKNS_23InstructionIteratorImplILb0EEESt10unique_ptrI11SourceBlockSt14default_deleteIS6_EE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #5

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cfg16ControlFlowGraph13insert_beforeIN9__gnu_cxx17__normal_iteratorIPSt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS8_EES7_I11DexPositionS9_ISC_EEEESt6vectorISF_SaISF_EEEEEEbRKNS_23InstructionIteratorImplILb0EEERKT_SR_(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN3cfg16ControlFlowGraph12insert_afterIN9__gnu_cxx17__normal_iteratorIPSt7variantIJP13IRInstructionSt10unique_ptrI11SourceBlockSt14default_deleteIS8_EES7_I11DexPositionS9_ISC_EEEESt6vectorISF_SaISF_EEEEEEbRKNS_23InstructionIteratorImplILb0EEERKT_SR_(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

declare noundef zeroext i1 @_ZN3cfg16ControlFlowGraph13insert_beforeERKNS_23InstructionIteratorImplILb0EEERKSt6vectorIP13IRInstructionSaIS7_EE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #5

declare noundef zeroext i1 @_ZN3cfg16ControlFlowGraph12insert_afterERKNS_23InstructionIteratorImplILb0EEERKSt6vectorIP13IRInstructionSaIS7_EE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #5

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

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

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

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

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

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

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

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

; Function Attrs: nobuiltin allocsize(0)
declare noundef nonnull ptr @_Znwm(i64 noundef) local_unnamed_addr #7

declare void @_ZN13IRInstructionC1ERKS_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #5

; Function Attrs: nobuiltin nounwind
declare void @_ZdlPvm(ptr noundef, i64 noundef) local_unnamed_addr #8

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7ir_list23InstructionIteratorImplILb0EEppEi(ptr dead_on_unwind noalias writable sret(%"class.ir_list::InstructionIteratorImpl") align 8, ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNK7ir_list23InstructionIteratorImplILb0EE6unwrapEv(ptr dead_on_unwind noalias writable sret(%"class.boost::intrusive::list_iterator") align 8, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #2 align 2

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

declare void @_ZN3cfg16ControlFlowGraph14move_result_ofERKNS_23InstructionIteratorImplILb0EEE(ptr dead_on_unwind writable sret(%"class.cfg::InstructionIteratorImpl") align 8, ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZNK3cfg23InstructionIteratorImplILb0EEeqERKS1_(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #2 align 2

declare noundef zeroext i1 @_ZN3cfg16ControlFlowGraph13replace_insnsERKNS_23InstructionIteratorImplILb0EEERKSt6vectorIP13IRInstructionSaIS7_EE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #5

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(16) ptr @_ZN7ir_list23InstructionIteratorImplILb0EEaSERKS1_(ptr noundef nonnull align 8 dereferenceable(16), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #3 align 2

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { noreturn "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 = { 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 #3 = { 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 #4 = { 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 #5 = { "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 = { 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 #7 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }
attributes #10 = { noreturn }
attributes #11 = { builtin allocsize(0) }
attributes #12 = { builtin nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"any pointer", !6, i64 0}


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