; LLVM IR from buresjan/optim_lbm :: nomad/src/Algos/CoordinateSearch/CSUpdate.ll (ZN9NOMAD_4_38CSUpdate6runImpEv)

; 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.std::shared_ptr.14" = type { %"class.std::__shared_ptr.15" }
%"class.std::__shared_ptr.15" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.40" = type { %"class.std::__shared_ptr.41" }
%"class.std::__shared_ptr.41" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.43" = type { %"class.std::__shared_ptr.44" }
%"class.std::__shared_ptr.44" = type { ptr, %"class.std::__shared_count" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.48" = type { %"struct.std::_Vector_base.49" }
%"struct.std::_Vector_base.49" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::shared_ptr.58" = type { %"class.std::__shared_ptr.59" }
%"class.std::__shared_ptr.59" = type { ptr, %"class.std::__shared_count" }
%"class.NOMAD_4_3::ComputeSuccessType" = type { %"class.std::function" }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"class.NOMAD_4_3::Double" = type <{ ptr, double, i8, [7 x i8] }>
%"class.NOMAD_4_3::ArrayOfDouble" = type { ptr, i64, ptr }
%"class.std::shared_ptr.17" = type { %"class.std::__shared_ptr.18" }
%"class.std::__shared_ptr.18" = type { ptr, %"class.std::__shared_count" }
%"class.std::allocator" = type { i8 }
%"class.std::shared_ptr.74" = type { %"class.std::__shared_ptr.75" }
%"class.std::__shared_ptr.75" = type { ptr, %"class.std::__shared_count" }

@.str.11 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [12 x i8], align 1
@_ZN9NOMAD_4_3L3INFE = external hidden constant double, align 8
@.str.13 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [11 x i8], align 1
@_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE = external hidden constant i32, align 4
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [20 x i8], align 1

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

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

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN9NOMAD_4_38CSUpdate6runImpEv(ptr noundef nonnull align 8 dereferenceable(140) %0) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %"class.std::shared_ptr.14", align 8
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca ptr, align 8
  %9 = alloca %"class.std::shared_ptr.40", align 8
  %10 = alloca %"class.std::shared_ptr.43", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca i32, align 4
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::vector.48", align 8
  %17 = alloca ptr, align 8
  %18 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %19 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %20 = alloca ptr, align 8
  %21 = alloca %"class.std::shared_ptr.58", align 8
  %22 = alloca %"class.std::shared_ptr.58", align 8
  %23 = alloca %"class.std::shared_ptr.58", align 8
  %24 = alloca %"class.std::shared_ptr.58", align 8
  %25 = alloca %"class.NOMAD_4_3::ComputeSuccessType", align 8
  %26 = alloca %"class.std::shared_ptr.58", align 8
  %27 = alloca i32, align 4
  %28 = alloca %"class.std::shared_ptr.58", align 8
  %29 = alloca %"class.std::shared_ptr.58", align 8
  %30 = alloca %"class.NOMAD_4_3::Double", align 8
  %31 = alloca %"class.std::shared_ptr.58", align 8
  %32 = alloca %"class.std::shared_ptr.58", align 8
  %33 = alloca i32, align 4
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %38 = alloca %"class.NOMAD_4_3::Double", align 8
  %39 = alloca %"class.std::__cxx11::basic_string", align 8
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %42 = alloca %"class.NOMAD_4_3::Double", align 8
  %43 = alloca i32, align 4
  %44 = alloca %"class.std::shared_ptr.58", align 8
  %45 = alloca %"class.std::shared_ptr.58", align 8
  %46 = alloca %"class.NOMAD_4_3::Double", align 8
  %47 = alloca %"class.std::shared_ptr.58", align 8
  %48 = alloca %"class.std::shared_ptr.58", align 8
  %49 = alloca i32, align 4
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::__cxx11::basic_string", align 8
  %53 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %54 = alloca %"class.NOMAD_4_3::Double", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %58 = alloca %"class.NOMAD_4_3::Double", align 8
  %59 = alloca i32, align 4
  %60 = alloca i8, align 1
  %61 = alloca %"class.std::shared_ptr.17", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::allocator", align 1
  %64 = alloca i8, align 1
  %65 = alloca %"class.std::__cxx11::basic_string", align 8
  %66 = alloca %"class.std::__cxx11::basic_string", align 8
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::__cxx11::basic_string", align 8
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.std::__cxx11::basic_string", align 8
  %71 = alloca %"class.std::__cxx11::basic_string", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca %"class.std::__cxx11::basic_string", align 8
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::__cxx11::basic_string", align 8
  %76 = alloca %"class.std::shared_ptr.74", align 8
  %77 = alloca %"class.std::shared_ptr.74", align 8
  %78 = alloca i32, align 4
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca %"class.std::allocator", align 1
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %83 = alloca %"class.NOMAD_4_3::Double", align 8
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca i32, align 4
  %86 = alloca %"class.std::__cxx11::basic_string", align 8
  %87 = alloca %"class.std::allocator", align 1
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %90 = alloca %"class.NOMAD_4_3::Double", align 8
  %91 = alloca %"class.std::__cxx11::basic_string", align 8
  %92 = alloca i32, align 4
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::allocator", align 1
  %95 = alloca i32, align 4
  %96 = alloca %"class.std::__cxx11::basic_string", align 8
  %97 = alloca %"class.std::allocator", align 1
  %98 = alloca i32, align 4
  %99 = alloca %"class.std::__cxx11::basic_string", align 8
  %100 = alloca %"class.std::__cxx11::basic_string", align 8
  %101 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %102 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %103 = alloca %"class.NOMAD_4_3::Double", align 8
  %104 = alloca %"class.std::__cxx11::basic_string", align 8
  %105 = alloca %"class.std::__cxx11::basic_string", align 8
  %106 = alloca %"class.std::__cxx11::basic_string", align 8
  %107 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %108 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %109 = alloca %"class.NOMAD_4_3::Double", align 8
  %110 = alloca %"class.std::__cxx11::basic_string", align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %111 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr %3) #7
  call void @_ZN9NOMAD_4_312EvcInterface19getEvaluatorControlEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.14") align 8 %3)
  call void @llvm.lifetime.start.p0(i64 4, ptr %4) #7
  store i32 0, ptr %4, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #7
  store i32 0, ptr %5, align 4, !tbaa !11
  %112 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_316EvaluatorControlEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %3) #7
  br i1 %112, label %113, label %125

113:                                              ; preds = %1
  %114 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #7
  %115 = invoke noundef i32 @_ZNK9NOMAD_4_316EvaluatorControl18getCurrentEvalTypeEi(ptr noundef nonnull align 8 dereferenceable(352) %114, i32 noundef -1)
          to label %116 unwind label %121

116:                                              ; preds = %113
  store i32 %115, ptr %4, align 4, !tbaa !9
  %117 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #7
  %118 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_316EvaluatorControl14getComputeTypeEi(ptr noundef nonnull align 8 dereferenceable(352) %117, i32 noundef -1)
          to label %119 unwind label %121

119:                                              ; preds = %116
  %120 = load i32, ptr %118, align 4, !tbaa !11
  store i32 %120, ptr %5, align 4, !tbaa !11
  br label %125

121:                                              ; preds = %116, %113
  %122 = landingpad { ptr, i32 }
          cleanup
  %123 = extractvalue { ptr, i32 } %122, 0
  store ptr %123, ptr %6, align 8
  %124 = extractvalue { ptr, i32 } %122, 1
  store i32 %124, ptr %7, align 4
  br label %1013

125:                                              ; preds = %119, %1
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #7
  %126 = invoke noundef ptr @_ZNK9NOMAD_4_34Step15getParentOfTypeIPNS_15CSMegaIterationEEET_b(ptr noundef nonnull align 8 dereferenceable(140) %111, i1 noundef zeroext true)
          to label %127 unwind label %161

127:                                              ; preds = %125
  store ptr %126, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %9) #7
  %128 = load ptr, ptr %8, align 8, !tbaa !5
  %129 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9NOMAD_4_313MegaIteration10getBarrierEv(ptr noundef nonnull align 8 dereferenceable(172) %128)
          to label %130 unwind label %165

130:                                              ; preds = %127
  call void @_ZNSt10shared_ptrIN9NOMAD_4_311BarrierBaseEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %9, ptr noundef nonnull align 8 dereferenceable(16) %129) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %10) #7
  %131 = load ptr, ptr %8, align 8, !tbaa !5
  %132 = load ptr, ptr %131, align 8, !tbaa !13
  %133 = getelementptr inbounds ptr, ptr %132, i64 10
  %134 = load ptr, ptr %133, align 8
  invoke void %134(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.43") align 8 %10, ptr noundef nonnull align 8 dereferenceable(200) %131)
          to label %135 unwind label %169

135:                                              ; preds = %130
  call void @llvm.lifetime.start.p0(i64 32, ptr %11) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #7
  store i32 9, ptr %12, align 4, !tbaa !15
  %136 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %12)
          to label %137 unwind label %173

137:                                              ; preds = %135
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  br i1 %136, label %138, label %211

138:                                              ; preds = %137
  call void @llvm.lifetime.start.p0(i64 32, ptr %13) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #7
  %139 = load ptr, ptr %111, align 8, !tbaa !13
  %140 = getelementptr inbounds ptr, ptr %139, i64 2
  %141 = load ptr, ptr %140, align 8
  invoke void %141(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(140) %111)
          to label %142 unwind label %177

142:                                              ; preds = %138
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef @.str.11, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %143 unwind label %181

143:                                              ; preds = %142
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.12)
          to label %144 unwind label %185

144:                                              ; preds = %143
  %145 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #7
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %111, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %146 unwind label %191

146:                                              ; preds = %144
  call void @llvm.lifetime.start.p0(i64 24, ptr %16) #7
  %147 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %148 = load ptr, ptr %147, align 8, !tbaa !13
  %149 = getelementptr inbounds ptr, ptr %148, i64 9
  %150 = load ptr, ptr %149, align 8
  invoke void %150(ptr dead_on_unwind writable sret(%"class.std::vector.48") align 8 %16, ptr noundef nonnull align 8 dereferenceable(120) %147, i64 noundef 4)
          to label %151 unwind label %195

151:                                              ; preds = %146
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #7
  store ptr %16, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #7
  %152 = load ptr, ptr %17, align 8, !tbaa !5
  %153 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %152) #7
  %154 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %18, i32 0, i32 0
  store ptr %153, ptr %154, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #7
  %155 = load ptr, ptr %17, align 8, !tbaa !5
  %156 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %155) #7
  %157 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %19, i32 0, i32 0
  store ptr %156, ptr %157, align 8
  br label %158

158:                                              ; preds = %203, %151
  %159 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 8 dereferenceable(8) %19) #7
  br i1 %159, label %199, label %160

160:                                              ; preds = %158
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  br label %209

161:                                              ; preds = %125
  %162 = landingpad { ptr, i32 }
          cleanup
  %163 = extractvalue { ptr, i32 } %162, 0
  store ptr %163, ptr %6, align 8
  %164 = extractvalue { ptr, i32 } %162, 1
  store i32 %164, ptr %7, align 4
  br label %1012

165:                                              ; preds = %127
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %6, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %7, align 4
  br label %1011

169:                                              ; preds = %130
  %170 = landingpad { ptr, i32 }
          cleanup
  %171 = extractvalue { ptr, i32 } %170, 0
  store ptr %171, ptr %6, align 8
  %172 = extractvalue { ptr, i32 } %170, 1
  store i32 %172, ptr %7, align 4
  br label %1010

173:                                              ; preds = %135
  %174 = landingpad { ptr, i32 }
          cleanup
  %175 = extractvalue { ptr, i32 } %174, 0
  store ptr %175, ptr %6, align 8
  %176 = extractvalue { ptr, i32 } %174, 1
  store i32 %176, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  br label %1009

177:                                              ; preds = %138
  %178 = landingpad { ptr, i32 }
          cleanup
  %179 = extractvalue { ptr, i32 } %178, 0
  store ptr %179, ptr %6, align 8
  %180 = extractvalue { ptr, i32 } %178, 1
  store i32 %180, ptr %7, align 4
  br label %190

181:                                              ; preds = %142
  %182 = landingpad { ptr, i32 }
          cleanup
  %183 = extractvalue { ptr, i32 } %182, 0
  store ptr %183, ptr %6, align 8
  %184 = extractvalue { ptr, i32 } %182, 1
  store i32 %184, ptr %7, align 4
  br label %189

185:                                              ; preds = %143
  %186 = landingpad { ptr, i32 }
          cleanup
  %187 = extractvalue { ptr, i32 } %186, 0
  store ptr %187, ptr %6, align 8
  %188 = extractvalue { ptr, i32 } %186, 1
  store i32 %188, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  br label %189

189:                                              ; preds = %185, %181
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %190

190:                                              ; preds = %189, %177
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %13) #7
  br label %1009

191:                                              ; preds = %144
  %192 = landingpad { ptr, i32 }
          cleanup
  %193 = extractvalue { ptr, i32 } %192, 0
  store ptr %193, ptr %6, align 8
  %194 = extractvalue { ptr, i32 } %192, 1
  store i32 %194, ptr %7, align 4
  br label %1009

195:                                              ; preds = %146
  %196 = landingpad { ptr, i32 }
          cleanup
  %197 = extractvalue { ptr, i32 } %196, 0
  store ptr %197, ptr %6, align 8
  %198 = extractvalue { ptr, i32 } %196, 1
  store i32 %198, ptr %7, align 4
  br label %210

199:                                              ; preds = %158
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #7
  %200 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #7
  store ptr %200, ptr %20, align 8, !tbaa !5
  %201 = load ptr, ptr %20, align 8, !tbaa !5
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %111, ptr noundef nonnull align 8 dereferenceable(32) %201)
          to label %202 unwind label %205

202:                                              ; preds = %199
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  br label %203

203:                                              ; preds = %202
  %204 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %18) #7
  br label %158

205:                                              ; preds = %199
  %206 = landingpad { ptr, i32 }
          cleanup
  %207 = extractvalue { ptr, i32 } %206, 0
  store ptr %207, ptr %6, align 8
  %208 = extractvalue { ptr, i32 } %206, 1
  store i32 %208, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #7
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #7
  br label %210

209:                                              ; preds = %160
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %16) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #7
  br label %211

210:                                              ; preds = %205, %195
  call void @llvm.lifetime.end.p0(i64 24, ptr %16) #7
  br label %1009

211:                                              ; preds = %209, %137
  call void @llvm.lifetime.start.p0(i64 16, ptr %21) #7
  %212 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  invoke void @_ZNK9NOMAD_4_311BarrierBase14getRefBestFeasEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.58") align 8 %21, ptr noundef nonnull align 8 dereferenceable(120) %212)
          to label %213 unwind label %260

213:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 16, ptr %22) #7
  %214 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  invoke void @_ZNK9NOMAD_4_311BarrierBase13getRefBestInfEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.58") align 8 %22, ptr noundef nonnull align 8 dereferenceable(120) %214)
          to label %215 unwind label %264

215:                                              ; preds = %213
  %216 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %217 = load ptr, ptr %216, align 8, !tbaa !13
  %218 = getelementptr inbounds ptr, ptr %217, i64 2
  %219 = load ptr, ptr %218, align 8
  invoke void %219(ptr noundef nonnull align 8 dereferenceable(120) %216)
          to label %220 unwind label %268

220:                                              ; preds = %215
  call void @llvm.lifetime.start.p0(i64 16, ptr %23) #7
  %221 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %222 = load ptr, ptr %221, align 8, !tbaa !13
  %223 = getelementptr inbounds ptr, ptr %222, i64 1
  %224 = load ptr, ptr %223, align 8
  invoke void %224(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.58") align 8 %23, ptr noundef nonnull align 8 dereferenceable(120) %221)
          to label %225 unwind label %272

225:                                              ; preds = %220
  call void @llvm.lifetime.start.p0(i64 16, ptr %24) #7
  %226 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  %227 = load ptr, ptr %226, align 8, !tbaa !13
  %228 = getelementptr inbounds ptr, ptr %227, i64 4
  %229 = load ptr, ptr %228, align 8
  invoke void %229(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.58") align 8 %24, ptr noundef nonnull align 8 dereferenceable(120) %226)
          to label %230 unwind label %276

230:                                              ; preds = %225
  %231 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  br i1 %231, label %234, label %232

232:                                              ; preds = %230
  %233 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  br i1 %233, label %234, label %907

234:                                              ; preds = %232, %230
  call void @llvm.lifetime.start.p0(i64 32, ptr %25) #7
  %235 = load i32, ptr %4, align 4, !tbaa !9
  %236 = load i32, ptr %5, align 4, !tbaa !11
  invoke void @_ZN9NOMAD_4_318ComputeSuccessTypeC2ENS_8EvalTypeENS_11ComputeTypeE(ptr noundef nonnull align 8 dereferenceable(32) %25, i32 noundef %235, i32 noundef %236)
          to label %237 unwind label %280

237:                                              ; preds = %234
  call void @llvm.lifetime.start.p0(i64 16, ptr %26) #7
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %28, ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %29, ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %30) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %30, ptr noundef nonnull align 8 dereferenceable(8) @_ZN9NOMAD_4_3L3INFE)
          to label %238 unwind label %284

238:                                              ; preds = %237
  %239 = invoke noundef i32 @_ZN9NOMAD_4_318ComputeSuccessTypeclESt10shared_ptrINS_9EvalPointEES3_RKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef %28, ptr noundef %29, ptr noundef nonnull align 8 dereferenceable(17) %30)
          to label %240 unwind label %288

240:                                              ; preds = %238
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %30) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %30) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %29) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #7
  store i32 %239, ptr %27, align 4, !tbaa !17
  %241 = load i32, ptr %27, align 4, !tbaa !17
  %242 = icmp sge i32 %241, 3
  br i1 %242, label %243, label %388

243:                                              ; preds = %240
  %244 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %31) #7
  %245 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  invoke void @_ZNK9NOMAD_4_39EvalPoint12getPointFromEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.58") align 8 %31, ptr noundef nonnull align 8 dereferenceable(160) %245)
          to label %246 unwind label %293

246:                                              ; preds = %243
  %247 = call noundef zeroext i1 @_ZSteqIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %31) #7
  br i1 %247, label %248, label %250

248:                                              ; preds = %246
  %249 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  br label %250

250:                                              ; preds = %248, %246
  %251 = phi i1 [ false, %246 ], [ %249, %248 ]
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %31) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #7
  br i1 %251, label %252, label %301

252:                                              ; preds = %250
  %253 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %32, ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  %254 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN9NOMAD_4_317SubproblemManager11getInstanceEv()
          to label %255 unwind label %297

255:                                              ; preds = %252
  %256 = call noundef ptr @_ZNKSt10unique_ptrIN9NOMAD_4_317SubproblemManagerESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %254) #7
  %257 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN9NOMAD_4_317SubproblemManager19getSubFixedVariableEPKNS_4StepE(ptr noundef nonnull align 8 dereferenceable(56) %256, ptr noundef %111)
          to label %258 unwind label %297

258:                                              ; preds = %255
  invoke void @_ZN9NOMAD_4_39EvalPoint12setPointFromESt10shared_ptrIS0_ERKNS_5PointE(ptr noundef nonnull align 8 dereferenceable(160) %253, ptr noundef %32, ptr noundef nonnull align 8 dereferenceable(24) %257)
          to label %259 unwind label %297

259:                                              ; preds = %258
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #7
  br label %301

260:                                              ; preds = %211
  %261 = landingpad { ptr, i32 }
          cleanup
  %262 = extractvalue { ptr, i32 } %261, 0
  store ptr %262, ptr %6, align 8
  %263 = extractvalue { ptr, i32 } %261, 1
  store i32 %263, ptr %7, align 4
  br label %1008

264:                                              ; preds = %213
  %265 = landingpad { ptr, i32 }
          cleanup
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %6, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %7, align 4
  br label %1007

268:                                              ; preds = %215
  %269 = landingpad { ptr, i32 }
          cleanup
  %270 = extractvalue { ptr, i32 } %269, 0
  store ptr %270, ptr %6, align 8
  %271 = extractvalue { ptr, i32 } %269, 1
  store i32 %271, ptr %7, align 4
  br label %1006

272:                                              ; preds = %220
  %273 = landingpad { ptr, i32 }
          cleanup
  %274 = extractvalue { ptr, i32 } %273, 0
  store ptr %274, ptr %6, align 8
  %275 = extractvalue { ptr, i32 } %273, 1
  store i32 %275, ptr %7, align 4
  br label %1005

276:                                              ; preds = %225
  %277 = landingpad { ptr, i32 }
          cleanup
  %278 = extractvalue { ptr, i32 } %277, 0
  store ptr %278, ptr %6, align 8
  %279 = extractvalue { ptr, i32 } %277, 1
  store i32 %279, ptr %7, align 4
  br label %1004

280:                                              ; preds = %234
  %281 = landingpad { ptr, i32 }
          cleanup
  %282 = extractvalue { ptr, i32 } %281, 0
  store ptr %282, ptr %6, align 8
  %283 = extractvalue { ptr, i32 } %281, 1
  store i32 %283, ptr %7, align 4
  br label %906

284:                                              ; preds = %237
  %285 = landingpad { ptr, i32 }
          cleanup
  %286 = extractvalue { ptr, i32 } %285, 0
  store ptr %286, ptr %6, align 8
  %287 = extractvalue { ptr, i32 } %285, 1
  store i32 %287, ptr %7, align 4
  br label %292

288:                                              ; preds = %238
  %289 = landingpad { ptr, i32 }
          cleanup
  %290 = extractvalue { ptr, i32 } %289, 0
  store ptr %290, ptr %6, align 8
  %291 = extractvalue { ptr, i32 } %289, 1
  store i32 %291, ptr %7, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %30) #7
  br label %292

292:                                              ; preds = %288, %284
  call void @llvm.lifetime.end.p0(i64 24, ptr %30) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %29) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %28) #7
  br label %905

293:                                              ; preds = %243
  %294 = landingpad { ptr, i32 }
          cleanup
  %295 = extractvalue { ptr, i32 } %294, 0
  store ptr %295, ptr %6, align 8
  %296 = extractvalue { ptr, i32 } %294, 1
  store i32 %296, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %31) #7
  br label %905

297:                                              ; preds = %258, %255, %252
  %298 = landingpad { ptr, i32 }
          cleanup
  %299 = extractvalue { ptr, i32 } %298, 0
  store ptr %299, ptr %6, align 8
  %300 = extractvalue { ptr, i32 } %298, 1
  store i32 %300, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %32) #7
  br label %905

301:                                              ; preds = %259, %250
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #7
  store i32 9, ptr %33, align 4, !tbaa !15
  %302 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %33)
          to label %303 unwind label %317

303:                                              ; preds = %301
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  br i1 %302, label %304, label %387

304:                                              ; preds = %303
  %305 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.13)
          to label %306 unwind label %321

306:                                              ; preds = %304
  %307 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  br i1 %307, label %308, label %354

308:                                              ; preds = %306
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #7
  %309 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %37) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %38) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %38)
          to label %310 unwind label %325

310:                                              ; preds = %308
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %37, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %38)
          to label %311 unwind label %329

311:                                              ; preds = %310
  invoke void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(160) %309, ptr noundef nonnull align 8 dereferenceable(24) %37, ptr noundef nonnull align 4 dereferenceable(4) @_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE)
          to label %312 unwind label %333

312:                                              ; preds = %311
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef @.str.14, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %313 unwind label %337

313:                                              ; preds = %312
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef @.str.15)
          to label %314 unwind label %341

314:                                              ; preds = %313
  %315 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %316 unwind label %345

316:                                              ; preds = %314
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %38) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #7
  br label %354

317:                                              ; preds = %301
  %318 = landingpad { ptr, i32 }
          cleanup
  %319 = extractvalue { ptr, i32 } %318, 0
  store ptr %319, ptr %6, align 8
  %320 = extractvalue { ptr, i32 } %318, 1
  store i32 %320, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  br label %905

321:                                              ; preds = %531, %529, %361, %304
  %322 = landingpad { ptr, i32 }
          cleanup
  %323 = extractvalue { ptr, i32 } %322, 0
  store ptr %323, ptr %6, align 8
  %324 = extractvalue { ptr, i32 } %322, 1
  store i32 %324, ptr %7, align 4
  br label %905

325:                                              ; preds = %308
  %326 = landingpad { ptr, i32 }
          cleanup
  %327 = extractvalue { ptr, i32 } %326, 0
  store ptr %327, ptr %6, align 8
  %328 = extractvalue { ptr, i32 } %326, 1
  store i32 %328, ptr %7, align 4
  br label %353

329:                                              ; preds = %310
  %330 = landingpad { ptr, i32 }
          cleanup
  %331 = extractvalue { ptr, i32 } %330, 0
  store ptr %331, ptr %6, align 8
  %332 = extractvalue { ptr, i32 } %330, 1
  store i32 %332, ptr %7, align 4
  br label %352

333:                                              ; preds = %311
  %334 = landingpad { ptr, i32 }
          cleanup
  %335 = extractvalue { ptr, i32 } %334, 0
  store ptr %335, ptr %6, align 8
  %336 = extractvalue { ptr, i32 } %334, 1
  store i32 %336, ptr %7, align 4
  br label %351

337:                                              ; preds = %312
  %338 = landingpad { ptr, i32 }
          cleanup
  %339 = extractvalue { ptr, i32 } %338, 0
  store ptr %339, ptr %6, align 8
  %340 = extractvalue { ptr, i32 } %338, 1
  store i32 %340, ptr %7, align 4
  br label %350

341:                                              ; preds = %313
  %342 = landingpad { ptr, i32 }
          cleanup
  %343 = extractvalue { ptr, i32 } %342, 0
  store ptr %343, ptr %6, align 8
  %344 = extractvalue { ptr, i32 } %342, 1
  store i32 %344, ptr %7, align 4
  br label %349

345:                                              ; preds = %314
  %346 = landingpad { ptr, i32 }
          cleanup
  %347 = extractvalue { ptr, i32 } %346, 0
  store ptr %347, ptr %6, align 8
  %348 = extractvalue { ptr, i32 } %346, 1
  store i32 %348, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #7
  br label %349

349:                                              ; preds = %345, %341
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #7
  br label %350

350:                                              ; preds = %349, %337
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #7
  br label %351

351:                                              ; preds = %350, %333
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %37) #7
  br label %352

352:                                              ; preds = %351, %329
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %38) #7
  br label %353

353:                                              ; preds = %352, %325
  call void @llvm.lifetime.end.p0(i64 24, ptr %38) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %37) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #7
  br label %905

354:                                              ; preds = %316, %306
  call void @llvm.lifetime.start.p0(i64 32, ptr %39) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %40) #7
  %355 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %41) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %42) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %42)
          to label %356 unwind label %363

356:                                              ; preds = %354
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %41, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %42)
          to label %357 unwind label %367

357:                                              ; preds = %356
  invoke void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 8 dereferenceable(160) %355, ptr noundef nonnull align 8 dereferenceable(24) %41, ptr noundef nonnull align 4 dereferenceable(4) @_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE)
          to label %358 unwind label %371

358:                                              ; preds = %357
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %39, ptr noundef @.str.16, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %359 unwind label %375

359:                                              ; preds = %358
  %360 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %39)
          to label %361 unwind label %379

361:                                              ; preds = %359
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %42) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #7
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %111, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %362 unwind label %321

362:                                              ; preds = %361
  br label %387

363:                                              ; preds = %354
  %364 = landingpad { ptr, i32 }
          cleanup
  %365 = extractvalue { ptr, i32 } %364, 0
  store ptr %365, ptr %6, align 8
  %366 = extractvalue { ptr, i32 } %364, 1
  store i32 %366, ptr %7, align 4
  br label %386

367:                                              ; preds = %356
  %368 = landingpad { ptr, i32 }
          cleanup
  %369 = extractvalue { ptr, i32 } %368, 0
  store ptr %369, ptr %6, align 8
  %370 = extractvalue { ptr, i32 } %368, 1
  store i32 %370, ptr %7, align 4
  br label %385

371:                                              ; preds = %357
  %372 = landingpad { ptr, i32 }
          cleanup
  %373 = extractvalue { ptr, i32 } %372, 0
  store ptr %373, ptr %6, align 8
  %374 = extractvalue { ptr, i32 } %372, 1
  store i32 %374, ptr %7, align 4
  br label %384

375:                                              ; preds = %358
  %376 = landingpad { ptr, i32 }
          cleanup
  %377 = extractvalue { ptr, i32 } %376, 0
  store ptr %377, ptr %6, align 8
  %378 = extractvalue { ptr, i32 } %376, 1
  store i32 %378, ptr %7, align 4
  br label %383

379:                                              ; preds = %359
  %380 = landingpad { ptr, i32 }
          cleanup
  %381 = extractvalue { ptr, i32 } %380, 0
  store ptr %381, ptr %6, align 8
  %382 = extractvalue { ptr, i32 } %380, 1
  store i32 %382, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %39) #7
  br label %383

383:                                              ; preds = %379, %375
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #7
  br label %384

384:                                              ; preds = %383, %371
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %41) #7
  br label %385

385:                                              ; preds = %384, %367
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %42) #7
  br label %386

386:                                              ; preds = %385, %363
  call void @llvm.lifetime.end.p0(i64 24, ptr %42) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %41) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %40) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %39) #7
  br label %905

387:                                              ; preds = %362, %303
  br label %523

388:                                              ; preds = %240
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #7
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %44, ptr noundef nonnull align 8 dereferenceable(16) %24) #7
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %45, ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %46) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %46, ptr noundef nonnull align 8 dereferenceable(8) @_ZN9NOMAD_4_3L3INFE)
          to label %389 unwind label %397

389:                                              ; preds = %388
  %390 = invoke noundef i32 @_ZN9NOMAD_4_318ComputeSuccessTypeclESt10shared_ptrINS_9EvalPointEES3_RKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef %44, ptr noundef %45, ptr noundef nonnull align 8 dereferenceable(17) %46)
          to label %391 unwind label %401

391:                                              ; preds = %389
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %46) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %46) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %45) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %44) #7
  store i32 %390, ptr %43, align 4, !tbaa !17
  %392 = load i32, ptr %43, align 4, !tbaa !17
  %393 = load i32, ptr %27, align 4, !tbaa !17
  %394 = icmp sgt i32 %392, %393
  br i1 %394, label %395, label %406

395:                                              ; preds = %391
  %396 = load i32, ptr %43, align 4, !tbaa !17
  store i32 %396, ptr %27, align 4, !tbaa !17
  br label %406

397:                                              ; preds = %388
  %398 = landingpad { ptr, i32 }
          cleanup
  %399 = extractvalue { ptr, i32 } %398, 0
  store ptr %399, ptr %6, align 8
  %400 = extractvalue { ptr, i32 } %398, 1
  store i32 %400, ptr %7, align 4
  br label %405

401:                                              ; preds = %389
  %402 = landingpad { ptr, i32 }
          cleanup
  %403 = extractvalue { ptr, i32 } %402, 0
  store ptr %403, ptr %6, align 8
  %404 = extractvalue { ptr, i32 } %402, 1
  store i32 %404, ptr %7, align 4
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %46) #7
  br label %405

405:                                              ; preds = %401, %397
  call void @llvm.lifetime.end.p0(i64 24, ptr %46) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %45) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %44) #7
  br label %522

406:                                              ; preds = %395, %391
  %407 = load i32, ptr %27, align 4, !tbaa !17
  %408 = icmp sge i32 %407, 3
  br i1 %408, label %409, label %521

409:                                              ; preds = %406
  %410 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull align 8 dereferenceable(16) %24) #7
  call void @llvm.lifetime.start.p0(i64 16, ptr %47) #7
  %411 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  invoke void @_ZNK9NOMAD_4_39EvalPoint12getPointFromEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.58") align 8 %47, ptr noundef nonnull align 8 dereferenceable(160) %411)
          to label %412 unwind label %426

412:                                              ; preds = %409
  %413 = call noundef zeroext i1 @_ZSteqIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %47) #7
  br i1 %413, label %414, label %416

414:                                              ; preds = %412
  %415 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  br label %416

416:                                              ; preds = %414, %412
  %417 = phi i1 [ false, %412 ], [ %415, %414 ]
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %47) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #7
  br i1 %417, label %418, label %434

418:                                              ; preds = %416
  %419 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %26) #7
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %48, ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  %420 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN9NOMAD_4_317SubproblemManager11getInstanceEv()
          to label %421 unwind label %430

421:                                              ; preds = %418
  %422 = call noundef ptr @_ZNKSt10unique_ptrIN9NOMAD_4_317SubproblemManagerESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %420) #7
  %423 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN9NOMAD_4_317SubproblemManager19getSubFixedVariableEPKNS_4StepE(ptr noundef nonnull align 8 dereferenceable(56) %422, ptr noundef %111)
          to label %424 unwind label %430

424:                                              ; preds = %421
  invoke void @_ZN9NOMAD_4_39EvalPoint12setPointFromESt10shared_ptrIS0_ERKNS_5PointE(ptr noundef nonnull align 8 dereferenceable(160) %419, ptr noundef %48, ptr noundef nonnull align 8 dereferenceable(24) %423)
          to label %425 unwind label %430

425:                                              ; preds = %424
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #7
  br label %434

426:                                              ; preds = %409
  %427 = landingpad { ptr, i32 }
          cleanup
  %428 = extractvalue { ptr, i32 } %427, 0
  store ptr %428, ptr %6, align 8
  %429 = extractvalue { ptr, i32 } %427, 1
  store i32 %429, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %47) #7
  br label %522

430:                                              ; preds = %424, %421, %418
  %431 = landingpad { ptr, i32 }
          cleanup
  %432 = extractvalue { ptr, i32 } %431, 0
  store ptr %432, ptr %6, align 8
  %433 = extractvalue { ptr, i32 } %431, 1
  store i32 %433, ptr %7, align 4
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %48) #7
  br label %522

434:                                              ; preds = %425, %416
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #7
  store i32 9, ptr %49, align 4, !tbaa !15
  %435 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %49)
          to label %436 unwind label %450

436:                                              ; preds = %434
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #7
  br i1 %435, label %437, label %520

437:                                              ; preds = %436
  %438 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.17)
          to label %439 unwind label %454

439:                                              ; preds = %437
  %440 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  br i1 %440, label %441, label %487

441:                                              ; preds = %439
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %51) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %52) #7
  %442 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %53) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %54) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %54)
          to label %443 unwind label %458

443:                                              ; preds = %441
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %53, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %54)
          to label %444 unwind label %462

444:                                              ; preds = %443
  invoke void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %52, ptr noundef nonnull align 8 dereferenceable(160) %442, ptr noundef nonnull align 8 dereferenceable(24) %53, ptr noundef nonnull align 4 dereferenceable(4) @_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE)
          to label %445 unwind label %466

445:                                              ; preds = %444
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %51, ptr noundef @.str.14, ptr noundef nonnull align 8 dereferenceable(32) %52)
          to label %446 unwind label %470

446:                                              ; preds = %445
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef @.str.15)
          to label %447 unwind label %474

447:                                              ; preds = %446
  %448 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %449 unwind label %478

449:                                              ; preds = %447
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %54) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #7
  br label %487

450:                                              ; preds = %434
  %451 = landingpad { ptr, i32 }
          cleanup
  %452 = extractvalue { ptr, i32 } %451, 0
  store ptr %452, ptr %6, align 8
  %453 = extractvalue { ptr, i32 } %451, 1
  store i32 %453, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #7
  br label %522

454:                                              ; preds = %494, %437
  %455 = landingpad { ptr, i32 }
          cleanup
  %456 = extractvalue { ptr, i32 } %455, 0
  store ptr %456, ptr %6, align 8
  %457 = extractvalue { ptr, i32 } %455, 1
  store i32 %457, ptr %7, align 4
  br label %522

458:                                              ; preds = %441
  %459 = landingpad { ptr, i32 }
          cleanup
  %460 = extractvalue { ptr, i32 } %459, 0
  store ptr %460, ptr %6, align 8
  %461 = extractvalue { ptr, i32 } %459, 1
  store i32 %461, ptr %7, align 4
  br label %486

462:                                              ; preds = %443
  %463 = landingpad { ptr, i32 }
          cleanup
  %464 = extractvalue { ptr, i32 } %463, 0
  store ptr %464, ptr %6, align 8
  %465 = extractvalue { ptr, i32 } %463, 1
  store i32 %465, ptr %7, align 4
  br label %485

466:                                              ; preds = %444
  %467 = landingpad { ptr, i32 }
          cleanup
  %468 = extractvalue { ptr, i32 } %467, 0
  store ptr %468, ptr %6, align 8
  %469 = extractvalue { ptr, i32 } %467, 1
  store i32 %469, ptr %7, align 4
  br label %484

470:                                              ; preds = %445
  %471 = landingpad { ptr, i32 }
          cleanup
  %472 = extractvalue { ptr, i32 } %471, 0
  store ptr %472, ptr %6, align 8
  %473 = extractvalue { ptr, i32 } %471, 1
  store i32 %473, ptr %7, align 4
  br label %483

474:                                              ; preds = %446
  %475 = landingpad { ptr, i32 }
          cleanup
  %476 = extractvalue { ptr, i32 } %475, 0
  store ptr %476, ptr %6, align 8
  %477 = extractvalue { ptr, i32 } %475, 1
  store i32 %477, ptr %7, align 4
  br label %482

478:                                              ; preds = %447
  %479 = landingpad { ptr, i32 }
          cleanup
  %480 = extractvalue { ptr, i32 } %479, 0
  store ptr %480, ptr %6, align 8
  %481 = extractvalue { ptr, i32 } %479, 1
  store i32 %481, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #7
  br label %482

482:                                              ; preds = %478, %474
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #7
  br label %483

483:                                              ; preds = %482, %470
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %52) #7
  br label %484

484:                                              ; preds = %483, %466
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %53) #7
  br label %485

485:                                              ; preds = %484, %462
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %54) #7
  br label %486

486:                                              ; preds = %485, %458
  call void @llvm.lifetime.end.p0(i64 24, ptr %54) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %53) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %52) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %51) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #7
  br label %522

487:                                              ; preds = %449, %439
  call void @llvm.lifetime.start.p0(i64 32, ptr %55) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %56) #7
  %488 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %57) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %58) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %58)
          to label %489 unwind label %496

489:                                              ; preds = %487
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %57, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %58)
          to label %490 unwind label %500

490:                                              ; preds = %489
  invoke void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr noundef nonnull align 8 dereferenceable(160) %488, ptr noundef nonnull align 8 dereferenceable(24) %57, ptr noundef nonnull align 4 dereferenceable(4) @_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE)
          to label %491 unwind label %504

491:                                              ; preds = %490
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %55, ptr noundef @.str.16, ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %492 unwind label %508

492:                                              ; preds = %491
  %493 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %494 unwind label %512

494:                                              ; preds = %492
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %57) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %58) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #7
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %111, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %495 unwind label %454

495:                                              ; preds = %494
  br label %520

496:                                              ; preds = %487
  %497 = landingpad { ptr, i32 }
          cleanup
  %498 = extractvalue { ptr, i32 } %497, 0
  store ptr %498, ptr %6, align 8
  %499 = extractvalue { ptr, i32 } %497, 1
  store i32 %499, ptr %7, align 4
  br label %519

500:                                              ; preds = %489
  %501 = landingpad { ptr, i32 }
          cleanup
  %502 = extractvalue { ptr, i32 } %501, 0
  store ptr %502, ptr %6, align 8
  %503 = extractvalue { ptr, i32 } %501, 1
  store i32 %503, ptr %7, align 4
  br label %518

504:                                              ; preds = %490
  %505 = landingpad { ptr, i32 }
          cleanup
  %506 = extractvalue { ptr, i32 } %505, 0
  store ptr %506, ptr %6, align 8
  %507 = extractvalue { ptr, i32 } %505, 1
  store i32 %507, ptr %7, align 4
  br label %517

508:                                              ; preds = %491
  %509 = landingpad { ptr, i32 }
          cleanup
  %510 = extractvalue { ptr, i32 } %509, 0
  store ptr %510, ptr %6, align 8
  %511 = extractvalue { ptr, i32 } %509, 1
  store i32 %511, ptr %7, align 4
  br label %516

512:                                              ; preds = %492
  %513 = landingpad { ptr, i32 }
          cleanup
  %514 = extractvalue { ptr, i32 } %513, 0
  store ptr %514, ptr %6, align 8
  %515 = extractvalue { ptr, i32 } %513, 1
  store i32 %515, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #7
  br label %516

516:                                              ; preds = %512, %508
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #7
  br label %517

517:                                              ; preds = %516, %504
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %57) #7
  br label %518

518:                                              ; preds = %517, %500
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %58) #7
  br label %519

519:                                              ; preds = %518, %496
  call void @llvm.lifetime.end.p0(i64 24, ptr %58) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %57) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %56) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %55) #7
  br label %522

520:                                              ; preds = %495, %436
  br label %521

521:                                              ; preds = %520, %406
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  br label %523

522:                                              ; preds = %519, %486, %454, %450, %430, %426, %405
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  br label %905

523:                                              ; preds = %521, %387
  %524 = load i32, ptr %27, align 4, !tbaa !17
  %525 = icmp eq i32 %524, 2
  br i1 %525, label %526, label %538

526:                                              ; preds = %523
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #7
  store i32 9, ptr %59, align 4, !tbaa !15
  %527 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %59)
          to label %528 unwind label %533

528:                                              ; preds = %526
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #7
  br i1 %527, label %529, label %537

529:                                              ; preds = %528
  %530 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.18)
          to label %531 unwind label %321

531:                                              ; preds = %529
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %111, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %532 unwind label %321

532:                                              ; preds = %531
  br label %537

533:                                              ; preds = %526
  %534 = landingpad { ptr, i32 }
          cleanup
  %535 = extractvalue { ptr, i32 } %534, 0
  store ptr %535, ptr %6, align 8
  %536 = extractvalue { ptr, i32 } %534, 1
  store i32 %536, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #7
  br label %905

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

538:                                              ; preds = %537, %523
  call void @llvm.lifetime.start.p0(i64 1, ptr %60) #7
  store i8 1, ptr %60, align 1, !tbaa !19
  %539 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_316EvaluatorControlEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %3) #7
  br i1 %539, label %540, label %564

540:                                              ; preds = %538
  call void @llvm.lifetime.start.p0(i64 16, ptr %61) #7
  %541 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #7
  invoke void @_ZNK9NOMAD_4_316EvaluatorControl31getEvaluatorControlGlobalParamsEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.17") align 8 %61, ptr noundef nonnull align 8 dereferenceable(352) %541)
          to label %542 unwind label %550

542:                                              ; preds = %540
  %543 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_332EvaluatorControlGlobalParametersELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %61) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %63) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %62, ptr noundef @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %63)
          to label %544 unwind label %554

544:                                              ; preds = %542
  %545 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK9NOMAD_4_310Parameters17getAttributeValueIbEERKT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(496) %543, ptr noundef nonnull align 8 dereferenceable(32) %62, i1 noundef zeroext false)
          to label %546 unwind label %558

546:                                              ; preds = %544
  %547 = load i8, ptr %545, align 1, !tbaa !19, !range !21, !noundef !22
  %548 = trunc i8 %547 to i1
  %549 = zext i1 %548 to i8
  store i8 %549, ptr %60, align 1, !tbaa !19
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_332EvaluatorControlGlobalParametersELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #7
  br label %564

550:                                              ; preds = %540
  %551 = landingpad { ptr, i32 }
          cleanup
  %552 = extractvalue { ptr, i32 } %551, 0
  store ptr %552, ptr %6, align 8
  %553 = extractvalue { ptr, i32 } %551, 1
  store i32 %553, ptr %7, align 4
  br label %563

554:                                              ; preds = %542
  %555 = landingpad { ptr, i32 }
          cleanup
  %556 = extractvalue { ptr, i32 } %555, 0
  store ptr %556, ptr %6, align 8
  %557 = extractvalue { ptr, i32 } %555, 1
  store i32 %557, ptr %7, align 4
  br label %562

558:                                              ; preds = %544
  %559 = landingpad { ptr, i32 }
          cleanup
  %560 = extractvalue { ptr, i32 } %559, 0
  store ptr %560, ptr %6, align 8
  %561 = extractvalue { ptr, i32 } %559, 1
  store i32 %561, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #7
  br label %562

562:                                              ; preds = %558, %554
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %63) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %63) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_332EvaluatorControlGlobalParametersELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %61) #7
  br label %563

563:                                              ; preds = %562, %550
  call void @llvm.lifetime.end.p0(i64 16, ptr %61) #7
  br label %904

564:                                              ; preds = %546, %538
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #7
  %565 = load ptr, ptr %8, align 8, !tbaa !5
  %566 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_34Step14getSuccessTypeEv(ptr noundef nonnull align 8 dereferenceable(140) %565)
          to label %567 unwind label %605

567:                                              ; preds = %564
  %568 = load i32, ptr %566, align 4, !tbaa !17
  %569 = icmp ne i32 0, %568
  %570 = zext i1 %569 to i8
  store i8 %570, ptr %64, align 1, !tbaa !19
  %571 = load i8, ptr %60, align 1, !tbaa !19, !range !21, !noundef !22
  %572 = trunc i8 %571 to i1
  br i1 %572, label %714, label %573

573:                                              ; preds = %567
  %574 = load i8, ptr %64, align 1, !tbaa !19, !range !21, !noundef !22
  %575 = trunc i8 %574 to i1
  br i1 %575, label %576, label %714

576:                                              ; preds = %573
  %577 = load i32, ptr %27, align 4, !tbaa !17
  %578 = load ptr, ptr %8, align 8, !tbaa !5
  %579 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_34Step14getSuccessTypeEv(ptr noundef nonnull align 8 dereferenceable(140) %578)
          to label %580 unwind label %605

580:                                              ; preds = %576
  %581 = load i32, ptr %579, align 4, !tbaa !17
  %582 = icmp ne i32 %577, %581
  br i1 %582, label %583, label %714

583:                                              ; preds = %580
  %584 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef @.str.20)
          to label %585 unwind label %605

585:                                              ; preds = %583
  call void @llvm.lifetime.start.p0(i64 32, ptr %65) #7
  %586 = load ptr, ptr %8, align 8, !tbaa !5
  %587 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_34Step14getSuccessTypeEv(ptr noundef nonnull align 8 dereferenceable(140) %586)
          to label %588 unwind label %609

588:                                              ; preds = %585
  %589 = load i32, ptr %587, align 4, !tbaa !17
  invoke void @_ZN9NOMAD_4_37enumStrB5cxx11ENS_11SuccessTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %65, i32 noundef %589)
          to label %590 unwind label %609

590:                                              ; preds = %588
  %591 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %65)
          to label %592 unwind label %613

592:                                              ; preds = %590
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %66) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %67) #7
  %593 = load i32, ptr %27, align 4, !tbaa !17
  invoke void @_ZN9NOMAD_4_37enumStrB5cxx11ENS_11SuccessTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %67, i32 noundef %593)
          to label %594 unwind label %618

594:                                              ; preds = %592
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %66, ptr noundef @.str.21, ptr noundef nonnull align 8 dereferenceable(32) %67)
          to label %595 unwind label %622

595:                                              ; preds = %594
  %596 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %66)
          to label %597 unwind label %626

597:                                              ; preds = %595
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #7
  %598 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  br i1 %598, label %599, label %646

599:                                              ; preds = %597
  call void @llvm.lifetime.start.p0(i64 32, ptr %68) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %69) #7
  %600 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  invoke void @_ZNK9NOMAD_4_39EvalPoint10displayAllB5cxx11ENS_11ComputeTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr noundef nonnull align 8 dereferenceable(160) %600, i32 noundef 0)
          to label %601 unwind label %632

601:                                              ; preds = %599
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %68, ptr noundef @.str.22, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %602 unwind label %636

602:                                              ; preds = %601
  %603 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %68)
          to label %604 unwind label %640

604:                                              ; preds = %602
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #7
  br label %646

605:                                              ; preds = %896, %712, %583, %576, %564
  %606 = landingpad { ptr, i32 }
          cleanup
  %607 = extractvalue { ptr, i32 } %606, 0
  store ptr %607, ptr %6, align 8
  %608 = extractvalue { ptr, i32 } %606, 1
  store i32 %608, ptr %7, align 4
  br label %903

609:                                              ; preds = %588, %585
  %610 = landingpad { ptr, i32 }
          cleanup
  %611 = extractvalue { ptr, i32 } %610, 0
  store ptr %611, ptr %6, align 8
  %612 = extractvalue { ptr, i32 } %610, 1
  store i32 %612, ptr %7, align 4
  br label %617

613:                                              ; preds = %590
  %614 = landingpad { ptr, i32 }
          cleanup
  %615 = extractvalue { ptr, i32 } %614, 0
  store ptr %615, ptr %6, align 8
  %616 = extractvalue { ptr, i32 } %614, 1
  store i32 %616, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %65) #7
  br label %617

617:                                              ; preds = %613, %609
  call void @llvm.lifetime.end.p0(i64 32, ptr %65) #7
  br label %903

618:                                              ; preds = %592
  %619 = landingpad { ptr, i32 }
          cleanup
  %620 = extractvalue { ptr, i32 } %619, 0
  store ptr %620, ptr %6, align 8
  %621 = extractvalue { ptr, i32 } %619, 1
  store i32 %621, ptr %7, align 4
  br label %631

622:                                              ; preds = %594
  %623 = landingpad { ptr, i32 }
          cleanup
  %624 = extractvalue { ptr, i32 } %623, 0
  store ptr %624, ptr %6, align 8
  %625 = extractvalue { ptr, i32 } %623, 1
  store i32 %625, ptr %7, align 4
  br label %630

626:                                              ; preds = %595
  %627 = landingpad { ptr, i32 }
          cleanup
  %628 = extractvalue { ptr, i32 } %627, 0
  store ptr %628, ptr %6, align 8
  %629 = extractvalue { ptr, i32 } %627, 1
  store i32 %629, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %66) #7
  br label %630

630:                                              ; preds = %626, %622
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #7
  br label %631

631:                                              ; preds = %630, %618
  call void @llvm.lifetime.end.p0(i64 32, ptr %67) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %66) #7
  br label %903

632:                                              ; preds = %599
  %633 = landingpad { ptr, i32 }
          cleanup
  %634 = extractvalue { ptr, i32 } %633, 0
  store ptr %634, ptr %6, align 8
  %635 = extractvalue { ptr, i32 } %633, 1
  store i32 %635, ptr %7, align 4
  br label %645

636:                                              ; preds = %601
  %637 = landingpad { ptr, i32 }
          cleanup
  %638 = extractvalue { ptr, i32 } %637, 0
  store ptr %638, ptr %6, align 8
  %639 = extractvalue { ptr, i32 } %637, 1
  store i32 %639, ptr %7, align 4
  br label %644

640:                                              ; preds = %602
  %641 = landingpad { ptr, i32 }
          cleanup
  %642 = extractvalue { ptr, i32 } %641, 0
  store ptr %642, ptr %6, align 8
  %643 = extractvalue { ptr, i32 } %641, 1
  store i32 %643, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %68) #7
  br label %644

644:                                              ; preds = %640, %636
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #7
  br label %645

645:                                              ; preds = %644, %632
  call void @llvm.lifetime.end.p0(i64 32, ptr %69) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %68) #7
  br label %903

646:                                              ; preds = %604, %597
  %647 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  br i1 %647, label %648, label %668

648:                                              ; preds = %646
  call void @llvm.lifetime.start.p0(i64 32, ptr %70) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %71) #7
  %649 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZNK9NOMAD_4_39EvalPoint10displayAllB5cxx11ENS_11ComputeTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr noundef nonnull align 8 dereferenceable(160) %649, i32 noundef 0)
          to label %650 unwind label %654

650:                                              ; preds = %648
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %70, ptr noundef @.str.23, ptr noundef nonnull align 8 dereferenceable(32) %71)
          to label %651 unwind label %658

651:                                              ; preds = %650
  %652 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %70)
          to label %653 unwind label %662

653:                                              ; preds = %651
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #7
  br label %668

654:                                              ; preds = %648
  %655 = landingpad { ptr, i32 }
          cleanup
  %656 = extractvalue { ptr, i32 } %655, 0
  store ptr %656, ptr %6, align 8
  %657 = extractvalue { ptr, i32 } %655, 1
  store i32 %657, ptr %7, align 4
  br label %667

658:                                              ; preds = %650
  %659 = landingpad { ptr, i32 }
          cleanup
  %660 = extractvalue { ptr, i32 } %659, 0
  store ptr %660, ptr %6, align 8
  %661 = extractvalue { ptr, i32 } %659, 1
  store i32 %661, ptr %7, align 4
  br label %666

662:                                              ; preds = %651
  %663 = landingpad { ptr, i32 }
          cleanup
  %664 = extractvalue { ptr, i32 } %663, 0
  store ptr %664, ptr %6, align 8
  %665 = extractvalue { ptr, i32 } %663, 1
  store i32 %665, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %70) #7
  br label %666

666:                                              ; preds = %662, %658
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %71) #7
  br label %667

667:                                              ; preds = %666, %654
  call void @llvm.lifetime.end.p0(i64 32, ptr %71) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %70) #7
  br label %903

668:                                              ; preds = %653, %646
  %669 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  br i1 %669, label %670, label %690

670:                                              ; preds = %668
  call void @llvm.lifetime.start.p0(i64 32, ptr %72) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %73) #7
  %671 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %22) #7
  invoke void @_ZNK9NOMAD_4_39EvalPoint10displayAllB5cxx11ENS_11ComputeTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %73, ptr noundef nonnull align 8 dereferenceable(160) %671, i32 noundef 0)
          to label %672 unwind label %676

672:                                              ; preds = %670
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %72, ptr noundef @.str.24, ptr noundef nonnull align 8 dereferenceable(32) %73)
          to label %673 unwind label %680

673:                                              ; preds = %672
  %674 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %72)
          to label %675 unwind label %684

675:                                              ; preds = %673
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #7
  br label %690

676:                                              ; preds = %670
  %677 = landingpad { ptr, i32 }
          cleanup
  %678 = extractvalue { ptr, i32 } %677, 0
  store ptr %678, ptr %6, align 8
  %679 = extractvalue { ptr, i32 } %677, 1
  store i32 %679, ptr %7, align 4
  br label %689

680:                                              ; preds = %672
  %681 = landingpad { ptr, i32 }
          cleanup
  %682 = extractvalue { ptr, i32 } %681, 0
  store ptr %682, ptr %6, align 8
  %683 = extractvalue { ptr, i32 } %681, 1
  store i32 %683, ptr %7, align 4
  br label %688

684:                                              ; preds = %673
  %685 = landingpad { ptr, i32 }
          cleanup
  %686 = extractvalue { ptr, i32 } %685, 0
  store ptr %686, ptr %6, align 8
  %687 = extractvalue { ptr, i32 } %685, 1
  store i32 %687, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #7
  br label %688

688:                                              ; preds = %684, %680
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %73) #7
  br label %689

689:                                              ; preds = %688, %676
  call void @llvm.lifetime.end.p0(i64 32, ptr %73) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %72) #7
  br label %903

690:                                              ; preds = %675, %668
  %691 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %24) #7
  br i1 %691, label %692, label %712

692:                                              ; preds = %690
  call void @llvm.lifetime.start.p0(i64 32, ptr %74) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %75) #7
  %693 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  invoke void @_ZNK9NOMAD_4_39EvalPoint10displayAllB5cxx11ENS_11ComputeTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %75, ptr noundef nonnull align 8 dereferenceable(160) %693, i32 noundef 0)
          to label %694 unwind label %698

694:                                              ; preds = %692
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %74, ptr noundef @.str.25, ptr noundef nonnull align 8 dereferenceable(32) %75)
          to label %695 unwind label %702

695:                                              ; preds = %694
  %696 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %74)
          to label %697 unwind label %706

697:                                              ; preds = %695
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #7
  br label %712

698:                                              ; preds = %692
  %699 = landingpad { ptr, i32 }
          cleanup
  %700 = extractvalue { ptr, i32 } %699, 0
  store ptr %700, ptr %6, align 8
  %701 = extractvalue { ptr, i32 } %699, 1
  store i32 %701, ptr %7, align 4
  br label %711

702:                                              ; preds = %694
  %703 = landingpad { ptr, i32 }
          cleanup
  %704 = extractvalue { ptr, i32 } %703, 0
  store ptr %704, ptr %6, align 8
  %705 = extractvalue { ptr, i32 } %703, 1
  store i32 %705, ptr %7, align 4
  br label %710

706:                                              ; preds = %695
  %707 = landingpad { ptr, i32 }
          cleanup
  %708 = extractvalue { ptr, i32 } %707, 0
  store ptr %708, ptr %6, align 8
  %709 = extractvalue { ptr, i32 } %707, 1
  store i32 %709, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #7
  br label %710

710:                                              ; preds = %706, %702
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %75) #7
  br label %711

711:                                              ; preds = %710, %698
  call void @llvm.lifetime.end.p0(i64 32, ptr %75) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %74) #7
  br label %903

712:                                              ; preds = %697, %690
  invoke void @_ZNK9NOMAD_4_34Step16AddOutputWarningERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %111, ptr noundef nonnull align 8 dereferenceable(32) %11)
          to label %713 unwind label %605

713:                                              ; preds = %712
  br label %714

714:                                              ; preds = %713, %580, %573, %567
  %715 = load i32, ptr %4, align 4, !tbaa !9
  %716 = icmp eq i32 0, %715
  br i1 %716, label %717, label %854

717:                                              ; preds = %714
  call void @llvm.lifetime.start.p0(i64 16, ptr %76) #7
  %718 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  br i1 %718, label %719, label %722

719:                                              ; preds = %717
  %720 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %23) #7
  invoke void @_ZNK9NOMAD_4_39EvalPoint12getDirectionEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.74") align 8 %76, ptr noundef nonnull align 8 dereferenceable(160) %720)
          to label %721 unwind label %746

721:                                              ; preds = %719
  br label %723

722:                                              ; preds = %717
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39DirectionEEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %76, ptr null) #7
  br label %723

723:                                              ; preds = %722, %721
  call void @llvm.lifetime.start.p0(i64 16, ptr %77) #7
  %724 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %24) #7
  br i1 %724, label %725, label %728

725:                                              ; preds = %723
  %726 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  invoke void @_ZNK9NOMAD_4_39EvalPoint12getDirectionEv(ptr dead_on_unwind writable sret(%"class.std::shared_ptr.74") align 8 %77, ptr noundef nonnull align 8 dereferenceable(160) %726)
          to label %727 unwind label %750

727:                                              ; preds = %725
  br label %729

728:                                              ; preds = %723
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39DirectionEEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %77, ptr null) #7
  br label %729

729:                                              ; preds = %728, %727
  %730 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39DirectionEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %76) #7
  br i1 %730, label %731, label %788

731:                                              ; preds = %729
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #7
  store i32 7, ptr %78, align 4, !tbaa !15
  %732 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %78)
          to label %733 unwind label %754

733:                                              ; preds = %731
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #7
  br i1 %732, label %734, label %787

734:                                              ; preds = %733
  call void @llvm.lifetime.start.p0(i64 32, ptr %79) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %80) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %80)
          to label %735 unwind label %758

735:                                              ; preds = %734
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %81) #7
  %736 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %76) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %82) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %83) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %83)
          to label %737 unwind label %762

737:                                              ; preds = %735
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %82, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %83)
          to label %738 unwind label %766

738:                                              ; preds = %737
  call void @llvm.lifetime.start.p0(i64 32, ptr %84) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  %739 = load ptr, ptr %736, align 8, !tbaa !13
  %740 = getelementptr inbounds ptr, ptr %739, i64 6
  %741 = load ptr, ptr %740, align 8
  invoke void %741(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %81, ptr noundef nonnull align 8 dereferenceable(24) %736, ptr noundef nonnull align 8 dereferenceable(24) %82, ptr noundef nonnull align 8 dereferenceable(32) %84)
          to label %742 unwind label %770

742:                                              ; preds = %738
  %743 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %79, ptr noundef nonnull align 8 dereferenceable(32) %81)
          to label %744 unwind label %774

744:                                              ; preds = %742
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %82) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %83) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %82) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #7
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %111, ptr noundef nonnull align 8 dereferenceable(32) %79, i32 noundef 7)
          to label %745 unwind label %781

745:                                              ; preds = %744
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #7
  br label %787

746:                                              ; preds = %719
  %747 = landingpad { ptr, i32 }
          cleanup
  %748 = extractvalue { ptr, i32 } %747, 0
  store ptr %748, ptr %6, align 8
  %749 = extractvalue { ptr, i32 } %747, 1
  store i32 %749, ptr %7, align 4
  br label %853

750:                                              ; preds = %725
  %751 = landingpad { ptr, i32 }
          cleanup
  %752 = extractvalue { ptr, i32 } %751, 0
  store ptr %752, ptr %6, align 8
  %753 = extractvalue { ptr, i32 } %751, 1
  store i32 %753, ptr %7, align 4
  br label %852

754:                                              ; preds = %731
  %755 = landingpad { ptr, i32 }
          cleanup
  %756 = extractvalue { ptr, i32 } %755, 0
  store ptr %756, ptr %6, align 8
  %757 = extractvalue { ptr, i32 } %755, 1
  store i32 %757, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #7
  br label %851

758:                                              ; preds = %734
  %759 = landingpad { ptr, i32 }
          cleanup
  %760 = extractvalue { ptr, i32 } %759, 0
  store ptr %760, ptr %6, align 8
  %761 = extractvalue { ptr, i32 } %759, 1
  store i32 %761, ptr %7, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %80) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %80) #7
  br label %786

762:                                              ; preds = %735
  %763 = landingpad { ptr, i32 }
          cleanup
  %764 = extractvalue { ptr, i32 } %763, 0
  store ptr %764, ptr %6, align 8
  %765 = extractvalue { ptr, i32 } %763, 1
  store i32 %765, ptr %7, align 4
  br label %780

766:                                              ; preds = %737
  %767 = landingpad { ptr, i32 }
          cleanup
  %768 = extractvalue { ptr, i32 } %767, 0
  store ptr %768, ptr %6, align 8
  %769 = extractvalue { ptr, i32 } %767, 1
  store i32 %769, ptr %7, align 4
  br label %779

770:                                              ; preds = %738
  %771 = landingpad { ptr, i32 }
          cleanup
  %772 = extractvalue { ptr, i32 } %771, 0
  store ptr %772, ptr %6, align 8
  %773 = extractvalue { ptr, i32 } %771, 1
  store i32 %773, ptr %7, align 4
  br label %778

774:                                              ; preds = %742
  %775 = landingpad { ptr, i32 }
          cleanup
  %776 = extractvalue { ptr, i32 } %775, 0
  store ptr %776, ptr %6, align 8
  %777 = extractvalue { ptr, i32 } %775, 1
  store i32 %777, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #7
  br label %778

778:                                              ; preds = %774, %770
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %84) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %82) #7
  br label %779

779:                                              ; preds = %778, %766
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %83) #7
  br label %780

780:                                              ; preds = %779, %762
  call void @llvm.lifetime.end.p0(i64 24, ptr %83) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %82) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %81) #7
  br label %785

781:                                              ; preds = %744
  %782 = landingpad { ptr, i32 }
          cleanup
  %783 = extractvalue { ptr, i32 } %782, 0
  store ptr %783, ptr %6, align 8
  %784 = extractvalue { ptr, i32 } %782, 1
  store i32 %784, ptr %7, align 4
  br label %785

785:                                              ; preds = %781, %780
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #7
  br label %786

786:                                              ; preds = %785, %758
  call void @llvm.lifetime.end.p0(i64 32, ptr %79) #7
  br label %851

787:                                              ; preds = %745, %733
  br label %788

788:                                              ; preds = %787, %729
  %789 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39DirectionEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %77) #7
  br i1 %789, label %790, label %839

790:                                              ; preds = %788
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #7
  store i32 7, ptr %85, align 4, !tbaa !15
  %791 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %85)
          to label %792 unwind label %805

792:                                              ; preds = %790
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #7
  br i1 %791, label %793, label %838

793:                                              ; preds = %792
  call void @llvm.lifetime.start.p0(i64 32, ptr %86) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %87) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %87)
          to label %794 unwind label %809

794:                                              ; preds = %793
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %88) #7
  %795 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %77) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %89) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %90) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %90)
          to label %796 unwind label %813

796:                                              ; preds = %794
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %89, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %90)
          to label %797 unwind label %817

797:                                              ; preds = %796
  call void @llvm.lifetime.start.p0(i64 32, ptr %91) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #7
  %798 = load ptr, ptr %795, align 8, !tbaa !13
  %799 = getelementptr inbounds ptr, ptr %798, i64 6
  %800 = load ptr, ptr %799, align 8
  invoke void %800(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %88, ptr noundef nonnull align 8 dereferenceable(24) %795, ptr noundef nonnull align 8 dereferenceable(24) %89, ptr noundef nonnull align 8 dereferenceable(32) %91)
          to label %801 unwind label %821

801:                                              ; preds = %797
  %802 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %86, ptr noundef nonnull align 8 dereferenceable(32) %88)
          to label %803 unwind label %825

803:                                              ; preds = %801
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %90) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %90) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %89) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #7
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %111, ptr noundef nonnull align 8 dereferenceable(32) %86, i32 noundef 7)
          to label %804 unwind label %832

804:                                              ; preds = %803
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #7
  br label %838

805:                                              ; preds = %790
  %806 = landingpad { ptr, i32 }
          cleanup
  %807 = extractvalue { ptr, i32 } %806, 0
  store ptr %807, ptr %6, align 8
  %808 = extractvalue { ptr, i32 } %806, 1
  store i32 %808, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #7
  br label %851

809:                                              ; preds = %793
  %810 = landingpad { ptr, i32 }
          cleanup
  %811 = extractvalue { ptr, i32 } %810, 0
  store ptr %811, ptr %6, align 8
  %812 = extractvalue { ptr, i32 } %810, 1
  store i32 %812, ptr %7, align 4
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %87) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %87) #7
  br label %837

813:                                              ; preds = %794
  %814 = landingpad { ptr, i32 }
          cleanup
  %815 = extractvalue { ptr, i32 } %814, 0
  store ptr %815, ptr %6, align 8
  %816 = extractvalue { ptr, i32 } %814, 1
  store i32 %816, ptr %7, align 4
  br label %831

817:                                              ; preds = %796
  %818 = landingpad { ptr, i32 }
          cleanup
  %819 = extractvalue { ptr, i32 } %818, 0
  store ptr %819, ptr %6, align 8
  %820 = extractvalue { ptr, i32 } %818, 1
  store i32 %820, ptr %7, align 4
  br label %830

821:                                              ; preds = %797
  %822 = landingpad { ptr, i32 }
          cleanup
  %823 = extractvalue { ptr, i32 } %822, 0
  store ptr %823, ptr %6, align 8
  %824 = extractvalue { ptr, i32 } %822, 1
  store i32 %824, ptr %7, align 4
  br label %829

825:                                              ; preds = %801
  %826 = landingpad { ptr, i32 }
          cleanup
  %827 = extractvalue { ptr, i32 } %826, 0
  store ptr %827, ptr %6, align 8
  %828 = extractvalue { ptr, i32 } %826, 1
  store i32 %828, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #7
  br label %829

829:                                              ; preds = %825, %821
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %91) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %91) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #7
  br label %830

830:                                              ; preds = %829, %817
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %90) #7
  br label %831

831:                                              ; preds = %830, %813
  call void @llvm.lifetime.end.p0(i64 24, ptr %90) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %89) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %88) #7
  br label %836

832:                                              ; preds = %803
  %833 = landingpad { ptr, i32 }
          cleanup
  %834 = extractvalue { ptr, i32 } %833, 0
  store ptr %834, ptr %6, align 8
  %835 = extractvalue { ptr, i32 } %833, 1
  store i32 %835, ptr %7, align 4
  br label %836

836:                                              ; preds = %832, %831
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %86) #7
  br label %837

837:                                              ; preds = %836, %809
  call void @llvm.lifetime.end.p0(i64 32, ptr %86) #7
  br label %851

838:                                              ; preds = %804, %792
  br label %839

839:                                              ; preds = %838, %788
  %840 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_316EvaluatorControlEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %3) #7
  br i1 %840, label %841, label %850

841:                                              ; preds = %839
  %842 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #7
  invoke void @_ZN9NOMAD_4_316EvaluatorControl24setLastSuccessfulFeasDirERKSt10shared_ptrINS_9DirectionEE(ptr noundef nonnull align 8 dereferenceable(352) %842, ptr noundef nonnull align 8 dereferenceable(16) %76)
          to label %843 unwind label %846

843:                                              ; preds = %841
  %844 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #7
  invoke void @_ZN9NOMAD_4_316EvaluatorControl23setLastSuccessfulInfDirERKSt10shared_ptrINS_9DirectionEE(ptr noundef nonnull align 8 dereferenceable(352) %844, ptr noundef nonnull align 8 dereferenceable(16) %77)
          to label %845 unwind label %846

845:                                              ; preds = %843
  br label %850

846:                                              ; preds = %843, %841
  %847 = landingpad { ptr, i32 }
          cleanup
  %848 = extractvalue { ptr, i32 } %847, 0
  store ptr %848, ptr %6, align 8
  %849 = extractvalue { ptr, i32 } %847, 1
  store i32 %849, ptr %7, align 4
  br label %851

850:                                              ; preds = %845, %839
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %77) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %77) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %76) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %76) #7
  br label %854

851:                                              ; preds = %846, %837, %805, %786, %754
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %77) #7
  br label %852

852:                                              ; preds = %851, %750
  call void @llvm.lifetime.end.p0(i64 16, ptr %77) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %76) #7
  br label %853

853:                                              ; preds = %852, %746
  call void @llvm.lifetime.end.p0(i64 16, ptr %76) #7
  br label %903

854:                                              ; preds = %850, %714
  %855 = load i32, ptr %27, align 4, !tbaa !17
  %856 = icmp sge i32 %855, 3
  br i1 %856, label %857, label %877

857:                                              ; preds = %854
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #7
  store i32 7, ptr %92, align 4, !tbaa !15
  %858 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %92)
          to label %859 unwind label %863

859:                                              ; preds = %857
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #7
  br i1 %858, label %860, label %876

860:                                              ; preds = %859
  call void @llvm.lifetime.start.p0(i64 32, ptr %93) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %94) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %93, ptr noundef @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %94)
          to label %861 unwind label %867

861:                                              ; preds = %860
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %111, ptr noundef nonnull align 8 dereferenceable(32) %93, i32 noundef 7)
          to label %862 unwind label %871

862:                                              ; preds = %861
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #7
  br label %876

863:                                              ; preds = %857
  %864 = landingpad { ptr, i32 }
          cleanup
  %865 = extractvalue { ptr, i32 } %864, 0
  store ptr %865, ptr %6, align 8
  %866 = extractvalue { ptr, i32 } %864, 1
  store i32 %866, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #7
  br label %903

867:                                              ; preds = %860
  %868 = landingpad { ptr, i32 }
          cleanup
  %869 = extractvalue { ptr, i32 } %868, 0
  store ptr %869, ptr %6, align 8
  %870 = extractvalue { ptr, i32 } %868, 1
  store i32 %870, ptr %7, align 4
  br label %875

871:                                              ; preds = %861
  %872 = landingpad { ptr, i32 }
          cleanup
  %873 = extractvalue { ptr, i32 } %872, 0
  store ptr %873, ptr %6, align 8
  %874 = extractvalue { ptr, i32 } %872, 1
  store i32 %874, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #7
  br label %875

875:                                              ; preds = %871, %867
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %94) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %94) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %93) #7
  br label %903

876:                                              ; preds = %862, %859
  br label %902

877:                                              ; preds = %854
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #7
  store i32 7, ptr %95, align 4, !tbaa !15
  %878 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %95)
          to label %879 unwind label %883

879:                                              ; preds = %877
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #7
  br i1 %878, label %880, label %896

880:                                              ; preds = %879
  call void @llvm.lifetime.start.p0(i64 32, ptr %96) #7
  call void @llvm.lifetime.start.p0(i64 1, ptr %97) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %96, ptr noundef @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %97)
          to label %881 unwind label %887

881:                                              ; preds = %880
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %111, ptr noundef nonnull align 8 dereferenceable(32) %96, i32 noundef 7)
          to label %882 unwind label %891

882:                                              ; preds = %881
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #7
  br label %896

883:                                              ; preds = %877
  %884 = landingpad { ptr, i32 }
          cleanup
  %885 = extractvalue { ptr, i32 } %884, 0
  store ptr %885, ptr %6, align 8
  %886 = extractvalue { ptr, i32 } %884, 1
  store i32 %886, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #7
  br label %903

887:                                              ; preds = %880
  %888 = landingpad { ptr, i32 }
          cleanup
  %889 = extractvalue { ptr, i32 } %888, 0
  store ptr %889, ptr %6, align 8
  %890 = extractvalue { ptr, i32 } %888, 1
  store i32 %890, ptr %7, align 4
  br label %895

891:                                              ; preds = %881
  %892 = landingpad { ptr, i32 }
          cleanup
  %893 = extractvalue { ptr, i32 } %892, 0
  store ptr %893, ptr %6, align 8
  %894 = extractvalue { ptr, i32 } %892, 1
  store i32 %894, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %96) #7
  br label %895

895:                                              ; preds = %891, %887
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %97) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %96) #7
  br label %903

896:                                              ; preds = %882, %879
  %897 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  %898 = load ptr, ptr %897, align 8, !tbaa !13
  %899 = getelementptr inbounds ptr, ptr %898, i64 5
  %900 = load ptr, ptr %899, align 8
  invoke void %900(ptr noundef nonnull align 8 dereferenceable(257) %897)
          to label %901 unwind label %605

901:                                              ; preds = %896
  br label %902

902:                                              ; preds = %901, %876
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #7
  call void @_ZN9NOMAD_4_318ComputeSuccessTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #7
  br label %907

903:                                              ; preds = %895, %883, %875, %863, %853, %711, %689, %667, %645, %631, %617, %605
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #7
  br label %904

904:                                              ; preds = %903, %563
  call void @llvm.lifetime.end.p0(i64 1, ptr %60) #7
  br label %905

905:                                              ; preds = %904, %533, %522, %386, %353, %321, %317, %297, %293, %292
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %26) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %26) #7
  call void @_ZN9NOMAD_4_318ComputeSuccessTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #7
  br label %906

906:                                              ; preds = %905, %280
  call void @llvm.lifetime.end.p0(i64 32, ptr %25) #7
  br label %1003

907:                                              ; preds = %902, %232
  %908 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  %909 = load ptr, ptr %908, align 8, !tbaa !13
  %910 = getelementptr inbounds ptr, ptr %909, i64 3
  %911 = load ptr, ptr %910, align 8
  invoke void %911(ptr noundef nonnull align 8 dereferenceable(257) %908)
          to label %912 unwind label %936

912:                                              ; preds = %907
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #7
  store i32 7, ptr %98, align 4, !tbaa !15
  %913 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %98)
          to label %914 unwind label %940

914:                                              ; preds = %912
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #7
  br i1 %913, label %915, label %1002

915:                                              ; preds = %914
  call void @llvm.lifetime.start.p0(i64 32, ptr %99) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %100) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %101) #7
  %916 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  %917 = load ptr, ptr %916, align 8, !tbaa !13
  %918 = getelementptr inbounds ptr, ptr %917, i64 12
  %919 = load ptr, ptr %918, align 8
  invoke void %919(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::ArrayOfDouble") align 8 %101, ptr noundef nonnull align 8 dereferenceable(257) %916)
          to label %920 unwind label %944

920:                                              ; preds = %915
  call void @llvm.lifetime.start.p0(i64 24, ptr %102) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %103) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %103)
          to label %921 unwind label %948

921:                                              ; preds = %920
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %102, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %103)
          to label %922 unwind label %952

922:                                              ; preds = %921
  call void @llvm.lifetime.start.p0(i64 32, ptr %104) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #7
  invoke void @_ZNK9NOMAD_4_313ArrayOfDouble7displayERKS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %100, ptr noundef nonnull align 8 dereferenceable(24) %101, ptr noundef nonnull align 8 dereferenceable(24) %102, ptr noundef nonnull align 8 dereferenceable(32) %104)
          to label %923 unwind label %956

923:                                              ; preds = %922
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %99, ptr noundef @.str.30, ptr noundef nonnull align 8 dereferenceable(32) %100)
          to label %924 unwind label %960

924:                                              ; preds = %923
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %111, ptr noundef nonnull align 8 dereferenceable(32) %99, i32 noundef 7)
          to label %925 unwind label %964

925:                                              ; preds = %924
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %102) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %103) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %103) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %102) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %101) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %101) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %105) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %106) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %107) #7
  %926 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %10) #7
  %927 = load ptr, ptr %926, align 8, !tbaa !13
  %928 = getelementptr inbounds ptr, ptr %927, i64 14
  %929 = load ptr, ptr %928, align 8
  invoke void %929(ptr dead_on_unwind writable sret(%"class.NOMAD_4_3::ArrayOfDouble") align 8 %107, ptr noundef nonnull align 8 dereferenceable(257) %926)
          to label %930 unwind label %973

930:                                              ; preds = %925
  call void @llvm.lifetime.start.p0(i64 24, ptr %108) #7
  call void @llvm.lifetime.start.p0(i64 24, ptr %109) #7
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %109)
          to label %931 unwind label %977

931:                                              ; preds = %930
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %108, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %109)
          to label %932 unwind label %981

932:                                              ; preds = %931
  call void @llvm.lifetime.start.p0(i64 32, ptr %110) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #7
  invoke void @_ZNK9NOMAD_4_313ArrayOfDouble7displayERKS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %106, ptr noundef nonnull align 8 dereferenceable(24) %107, ptr noundef nonnull align 8 dereferenceable(24) %108, ptr noundef nonnull align 8 dereferenceable(32) %110)
          to label %933 unwind label %985

933:                                              ; preds = %932
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %105, ptr noundef @.str.31, ptr noundef nonnull align 8 dereferenceable(32) %106)
          to label %934 unwind label %989

934:                                              ; preds = %933
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %111, ptr noundef nonnull align 8 dereferenceable(32) %105, i32 noundef 7)
          to label %935 unwind label %993

935:                                              ; preds = %934
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %108) #7
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %109) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %109) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %108) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %107) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %107) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #7
  br label %1002

936:                                              ; preds = %907
  %937 = landingpad { ptr, i32 }
          cleanup
  %938 = extractvalue { ptr, i32 } %937, 0
  store ptr %938, ptr %6, align 8
  %939 = extractvalue { ptr, i32 } %937, 1
  store i32 %939, ptr %7, align 4
  br label %1003

940:                                              ; preds = %912
  %941 = landingpad { ptr, i32 }
          cleanup
  %942 = extractvalue { ptr, i32 } %941, 0
  store ptr %942, ptr %6, align 8
  %943 = extractvalue { ptr, i32 } %941, 1
  store i32 %943, ptr %7, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #7
  br label %1003

944:                                              ; preds = %915
  %945 = landingpad { ptr, i32 }
          cleanup
  %946 = extractvalue { ptr, i32 } %945, 0
  store ptr %946, ptr %6, align 8
  %947 = extractvalue { ptr, i32 } %945, 1
  store i32 %947, ptr %7, align 4
  br label %972

948:                                              ; preds = %920
  %949 = landingpad { ptr, i32 }
          cleanup
  %950 = extractvalue { ptr, i32 } %949, 0
  store ptr %950, ptr %6, align 8
  %951 = extractvalue { ptr, i32 } %949, 1
  store i32 %951, ptr %7, align 4
  br label %971

952:                                              ; preds = %921
  %953 = landingpad { ptr, i32 }
          cleanup
  %954 = extractvalue { ptr, i32 } %953, 0
  store ptr %954, ptr %6, align 8
  %955 = extractvalue { ptr, i32 } %953, 1
  store i32 %955, ptr %7, align 4
  br label %970

956:                                              ; preds = %922
  %957 = landingpad { ptr, i32 }
          cleanup
  %958 = extractvalue { ptr, i32 } %957, 0
  store ptr %958, ptr %6, align 8
  %959 = extractvalue { ptr, i32 } %957, 1
  store i32 %959, ptr %7, align 4
  br label %969

960:                                              ; preds = %923
  %961 = landingpad { ptr, i32 }
          cleanup
  %962 = extractvalue { ptr, i32 } %961, 0
  store ptr %962, ptr %6, align 8
  %963 = extractvalue { ptr, i32 } %961, 1
  store i32 %963, ptr %7, align 4
  br label %968

964:                                              ; preds = %924
  %965 = landingpad { ptr, i32 }
          cleanup
  %966 = extractvalue { ptr, i32 } %965, 0
  store ptr %966, ptr %6, align 8
  %967 = extractvalue { ptr, i32 } %965, 1
  store i32 %967, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %99) #7
  br label %968

968:                                              ; preds = %964, %960
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %100) #7
  br label %969

969:                                              ; preds = %968, %956
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %104) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %104) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %102) #7
  br label %970

970:                                              ; preds = %969, %952
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %103) #7
  br label %971

971:                                              ; preds = %970, %948
  call void @llvm.lifetime.end.p0(i64 24, ptr %103) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %102) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %101) #7
  br label %972

972:                                              ; preds = %971, %944
  call void @llvm.lifetime.end.p0(i64 24, ptr %101) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %100) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %99) #7
  br label %1003

973:                                              ; preds = %925
  %974 = landingpad { ptr, i32 }
          cleanup
  %975 = extractvalue { ptr, i32 } %974, 0
  store ptr %975, ptr %6, align 8
  %976 = extractvalue { ptr, i32 } %974, 1
  store i32 %976, ptr %7, align 4
  br label %1001

977:                                              ; preds = %930
  %978 = landingpad { ptr, i32 }
          cleanup
  %979 = extractvalue { ptr, i32 } %978, 0
  store ptr %979, ptr %6, align 8
  %980 = extractvalue { ptr, i32 } %978, 1
  store i32 %980, ptr %7, align 4
  br label %1000

981:                                              ; preds = %931
  %982 = landingpad { ptr, i32 }
          cleanup
  %983 = extractvalue { ptr, i32 } %982, 0
  store ptr %983, ptr %6, align 8
  %984 = extractvalue { ptr, i32 } %982, 1
  store i32 %984, ptr %7, align 4
  br label %999

985:                                              ; preds = %932
  %986 = landingpad { ptr, i32 }
          cleanup
  %987 = extractvalue { ptr, i32 } %986, 0
  store ptr %987, ptr %6, align 8
  %988 = extractvalue { ptr, i32 } %986, 1
  store i32 %988, ptr %7, align 4
  br label %998

989:                                              ; preds = %933
  %990 = landingpad { ptr, i32 }
          cleanup
  %991 = extractvalue { ptr, i32 } %990, 0
  store ptr %991, ptr %6, align 8
  %992 = extractvalue { ptr, i32 } %990, 1
  store i32 %992, ptr %7, align 4
  br label %997

993:                                              ; preds = %934
  %994 = landingpad { ptr, i32 }
          cleanup
  %995 = extractvalue { ptr, i32 } %994, 0
  store ptr %995, ptr %6, align 8
  %996 = extractvalue { ptr, i32 } %994, 1
  store i32 %996, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %105) #7
  br label %997

997:                                              ; preds = %993, %989
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %106) #7
  br label %998

998:                                              ; preds = %997, %985
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %110) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %110) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %108) #7
  br label %999

999:                                              ; preds = %998, %981
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %109) #7
  br label %1000

1000:                                             ; preds = %999, %977
  call void @llvm.lifetime.end.p0(i64 24, ptr %109) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %108) #7
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %107) #7
  br label %1001

1001:                                             ; preds = %1000, %973
  call void @llvm.lifetime.end.p0(i64 24, ptr %107) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %106) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %105) #7
  br label %1003

1002:                                             ; preds = %935, %914
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %3) #7
  ret i1 true

1003:                                             ; preds = %1001, %972, %940, %936, %906
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %24) #7
  br label %1004

1004:                                             ; preds = %1003, %276
  call void @llvm.lifetime.end.p0(i64 16, ptr %24) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #7
  br label %1005

1005:                                             ; preds = %1004, %272
  call void @llvm.lifetime.end.p0(i64 16, ptr %23) #7
  br label %1006

1006:                                             ; preds = %1005, %268
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #7
  br label %1007

1007:                                             ; preds = %1006, %264
  call void @llvm.lifetime.end.p0(i64 16, ptr %22) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %21) #7
  br label %1008

1008:                                             ; preds = %1007, %260
  call void @llvm.lifetime.end.p0(i64 16, ptr %21) #7
  br label %1009

1009:                                             ; preds = %1008, %210, %191, %190, %173
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %11) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %10) #7
  br label %1010

1010:                                             ; preds = %1009, %169
  call void @llvm.lifetime.end.p0(i64 16, ptr %10) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %9) #7
  br label %1011

1011:                                             ; preds = %1010, %165
  call void @llvm.lifetime.end.p0(i64 16, ptr %9) #7
  br label %1012

1012:                                             ; preds = %1011, %161
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #7
  br label %1013

1013:                                             ; preds = %1012, %121
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #7
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #7
  call void @llvm.lifetime.end.p0(i64 16, ptr %3) #7
  br label %1014

1014:                                             ; preds = %1013
  %1015 = load ptr, ptr %6, align 8
  %1016 = load i32, ptr %7, align 4
  %1017 = insertvalue { ptr, i32 } poison, ptr %1015, 0
  %1018 = insertvalue { ptr, i32 } %1017, i32 %1016, 1
  resume { ptr, i32 } %1018
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN9NOMAD_4_312EvcInterface19getEvaluatorControlEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.14") align 8) #1 align 2

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

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

declare noundef i32 @_ZNK9NOMAD_4_316EvaluatorControl18getCurrentEvalTypeEi(ptr noundef nonnull align 8 dereferenceable(352), i32 noundef) #4

declare noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_316EvaluatorControl14getComputeTypeEi(ptr noundef nonnull align 8 dereferenceable(352), i32 noundef) #4

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) #5

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

declare void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140), ptr noundef nonnull align 8 dereferenceable(32)) #4

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

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

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

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

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

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

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

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

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

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

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

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

declare noundef i32 @_ZN9NOMAD_4_318ComputeSuccessTypeclESt10shared_ptrINS_9EvalPointEES3_RKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(17)) #4

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

declare void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

; Function Attrs: nounwind
declare void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17)) unnamed_addr #6

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

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

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

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

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

declare void @_ZN9NOMAD_4_39EvalPoint12setPointFromESt10shared_ptrIS0_ERKNS_5PointE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef, ptr noundef nonnull align 8 dereferenceable(24)) #4

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

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

declare noundef nonnull align 8 dereferenceable(24) ptr @_ZN9NOMAD_4_317SubproblemManager19getSubFixedVariableEPKNS_4StepE(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef) #4

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

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

declare void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) #4

declare void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17)) unnamed_addr #4

declare void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 8 dereferenceable(17)) unnamed_addr #4

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

; Function Attrs: nounwind
declare void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6

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

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

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

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

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

declare void @_ZN9NOMAD_4_37enumStrB5cxx11ENS_11SuccessTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) #4

declare void @_ZNK9NOMAD_4_39EvalPoint10displayAllB5cxx11ENS_11ComputeTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(160), i32 noundef) #4

declare void @_ZNK9NOMAD_4_34Step16AddOutputWarningERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140), ptr noundef nonnull align 8 dereferenceable(32)) #4

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

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

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

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

declare void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) #4

declare void @_ZN9NOMAD_4_316EvaluatorControl24setLastSuccessfulFeasDirERKSt10shared_ptrINS_9DirectionEE(ptr noundef nonnull align 8 dereferenceable(352), ptr noundef nonnull align 8 dereferenceable(16)) #4

declare void @_ZN9NOMAD_4_316EvaluatorControl23setLastSuccessfulInfDirERKSt10shared_ptrINS_9DirectionEE(ptr noundef nonnull align 8 dereferenceable(352), ptr noundef nonnull align 8 dereferenceable(16)) #4

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

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

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

declare void @_ZNK9NOMAD_4_313ArrayOfDouble7displayERKS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"_ZTSN9NOMAD_4_38EvalTypeE", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_ZTSN9NOMAD_4_311ComputeTypeE", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"vtable pointer", !8, i64 0}
!15 = !{!16, !16, i64 0}
!16 = !{!"_ZTSN9NOMAD_4_311OutputLevelE", !7, i64 0}
!17 = !{!18, !18, i64 0}
!18 = !{!"_ZTSN9NOMAD_4_311SuccessTypeE", !7, i64 0}
!19 = !{!20, !20, i64 0}
!20 = !{!"bool", !7, i64 0}
!21 = !{i8 0, i8 2}
!22 = !{}


; 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.std::shared_ptr.14" = type { %"class.std::__shared_ptr.15" }
%"class.std::__shared_ptr.15" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"class.std::shared_ptr.40" = type { %"class.std::__shared_ptr.41" }
%"class.std::__shared_ptr.41" = type { ptr, %"class.std::__shared_count" }
%"class.std::shared_ptr.43" = type { %"class.std::__shared_ptr.44" }
%"class.std::__shared_ptr.44" = type { ptr, %"class.std::__shared_count" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.48" = type { %"struct.std::_Vector_base.49" }
%"struct.std::_Vector_base.49" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"class.std::shared_ptr.58" = type { %"class.std::__shared_ptr.59" }
%"class.std::__shared_ptr.59" = type { ptr, %"class.std::__shared_count" }
%"class.NOMAD_4_3::ComputeSuccessType" = type { %"class.std::function" }
%"class.std::function" = type { %"class.std::_Function_base", ptr }
%"class.std::_Function_base" = type { %"union.std::_Any_data", ptr }
%"union.std::_Any_data" = type { %"union.std::_Nocopy_types" }
%"union.std::_Nocopy_types" = type { { i64, i64 } }
%"class.NOMAD_4_3::Double" = type <{ ptr, double, i8, [7 x i8] }>
%"class.NOMAD_4_3::ArrayOfDouble" = type { ptr, i64, ptr }
%"class.std::shared_ptr.17" = type { %"class.std::__shared_ptr.18" }
%"class.std::__shared_ptr.18" = type { ptr, %"class.std::__shared_count" }
%"class.std::allocator" = type { i8 }
%"class.std::shared_ptr.74" = type { %"class.std::__shared_ptr.75" }
%"class.std::__shared_ptr.75" = type { ptr, %"class.std::__shared_count" }

@.str.11 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [12 x i8], align 1
@_ZN9NOMAD_4_3L3INFE = external hidden constant double, align 8
@.str.13 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [11 x i8], align 1
@_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE = external hidden constant i32, align 4
@.str.15 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [5 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [17 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [38 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [23 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [26 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [50 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [20 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [20 x i8], align 1

; 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 nounwind uwtable
declare void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 align 2

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

declare i32 @__gxx_personality_v0(...)

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

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

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

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

; Function Attrs: mustprogress uwtable
define dso_local noundef zeroext i1 @_ZN9NOMAD_4_38CSUpdate6runImpEv(ptr noundef nonnull align 8 dereferenceable(140) %0) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %"class.std::shared_ptr.14", align 8
  %3 = alloca %"class.std::shared_ptr.40", align 8
  %4 = alloca %"class.std::shared_ptr.43", align 8
  %5 = alloca %"class.std::__cxx11::basic_string", align 8
  %6 = alloca i32, align 4
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::vector.48", align 8
  %11 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %12 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %13 = alloca %"class.std::shared_ptr.58", align 8
  %14 = alloca %"class.std::shared_ptr.58", align 8
  %15 = alloca %"class.std::shared_ptr.58", align 8
  %16 = alloca %"class.std::shared_ptr.58", align 8
  %17 = alloca %"class.NOMAD_4_3::ComputeSuccessType", align 8
  %18 = alloca %"class.std::shared_ptr.58", align 8
  %19 = alloca %"class.std::shared_ptr.58", align 8
  %20 = alloca %"class.std::shared_ptr.58", align 8
  %21 = alloca %"class.NOMAD_4_3::Double", align 8
  %22 = alloca %"class.std::shared_ptr.58", align 8
  %23 = alloca %"class.std::shared_ptr.58", align 8
  %24 = alloca i32, align 4
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %29 = alloca %"class.NOMAD_4_3::Double", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %33 = alloca %"class.NOMAD_4_3::Double", align 8
  %34 = alloca %"class.std::shared_ptr.58", align 8
  %35 = alloca %"class.std::shared_ptr.58", align 8
  %36 = alloca %"class.NOMAD_4_3::Double", align 8
  %37 = alloca %"class.std::shared_ptr.58", align 8
  %38 = alloca %"class.std::shared_ptr.58", align 8
  %39 = alloca i32, align 4
  %40 = alloca %"class.std::__cxx11::basic_string", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %44 = alloca %"class.NOMAD_4_3::Double", align 8
  %45 = alloca %"class.std::__cxx11::basic_string", align 8
  %46 = alloca %"class.std::__cxx11::basic_string", align 8
  %47 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %48 = alloca %"class.NOMAD_4_3::Double", align 8
  %49 = alloca i32, align 4
  %50 = alloca %"class.std::shared_ptr.17", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator", align 1
  %53 = alloca %"class.std::__cxx11::basic_string", align 8
  %54 = alloca %"class.std::__cxx11::basic_string", align 8
  %55 = alloca %"class.std::__cxx11::basic_string", align 8
  %56 = alloca %"class.std::__cxx11::basic_string", align 8
  %57 = alloca %"class.std::__cxx11::basic_string", align 8
  %58 = alloca %"class.std::__cxx11::basic_string", align 8
  %59 = alloca %"class.std::__cxx11::basic_string", align 8
  %60 = alloca %"class.std::__cxx11::basic_string", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::shared_ptr.74", align 8
  %65 = alloca %"class.std::shared_ptr.74", align 8
  %66 = alloca i32, align 4
  %67 = alloca %"class.std::__cxx11::basic_string", align 8
  %68 = alloca %"class.std::allocator", align 1
  %69 = alloca %"class.std::__cxx11::basic_string", align 8
  %70 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %71 = alloca %"class.NOMAD_4_3::Double", align 8
  %72 = alloca %"class.std::__cxx11::basic_string", align 8
  %73 = alloca i32, align 4
  %74 = alloca %"class.std::__cxx11::basic_string", align 8
  %75 = alloca %"class.std::allocator", align 1
  %76 = alloca %"class.std::__cxx11::basic_string", align 8
  %77 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %78 = alloca %"class.NOMAD_4_3::Double", align 8
  %79 = alloca %"class.std::__cxx11::basic_string", align 8
  %80 = alloca i32, align 4
  %81 = alloca %"class.std::__cxx11::basic_string", align 8
  %82 = alloca %"class.std::allocator", align 1
  %83 = alloca i32, align 4
  %84 = alloca %"class.std::__cxx11::basic_string", align 8
  %85 = alloca %"class.std::allocator", align 1
  %86 = alloca i32, align 4
  %87 = alloca %"class.std::__cxx11::basic_string", align 8
  %88 = alloca %"class.std::__cxx11::basic_string", align 8
  %89 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %90 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %91 = alloca %"class.NOMAD_4_3::Double", align 8
  %92 = alloca %"class.std::__cxx11::basic_string", align 8
  %93 = alloca %"class.std::__cxx11::basic_string", align 8
  %94 = alloca %"class.std::__cxx11::basic_string", align 8
  %95 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %96 = alloca %"class.NOMAD_4_3::ArrayOfDouble", align 8
  %97 = alloca %"class.NOMAD_4_3::Double", align 8
  %98 = alloca %"class.std::__cxx11::basic_string", align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) #8
  call void @_ZN9NOMAD_4_312EvcInterface19getEvaluatorControlEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.14") align 8 %2)
  %99 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_316EvaluatorControlEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  br i1 %99, label %100, label %110

100:                                              ; preds = %1
  %101 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #8
  %102 = invoke noundef i32 @_ZNK9NOMAD_4_316EvaluatorControl18getCurrentEvalTypeEi(ptr noundef nonnull align 8 dereferenceable(352) %101, i32 noundef -1)
          to label %103 unwind label %108

103:                                              ; preds = %100
  %104 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #8
  %105 = invoke noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_316EvaluatorControl14getComputeTypeEi(ptr noundef nonnull align 8 dereferenceable(352) %104, i32 noundef -1)
          to label %106 unwind label %108

106:                                              ; preds = %103
  %107 = load i32, ptr %105, align 4, !tbaa !5
  br label %110

108:                                              ; preds = %103, %100
  %109 = landingpad { ptr, i32 }
          cleanup
  br label %687

110:                                              ; preds = %106, %1
  %.027 = phi i32 [ %107, %106 ], [ 0, %1 ]
  %.0 = phi i32 [ %102, %106 ], [ 0, %1 ]
  %111 = invoke noundef ptr @_ZNK9NOMAD_4_34Step15getParentOfTypeIPNS_15CSMegaIterationEEET_b(ptr noundef nonnull align 8 dereferenceable(140) %0, i1 noundef zeroext true)
          to label %112 unwind label %137

112:                                              ; preds = %110
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #8
  %113 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK9NOMAD_4_313MegaIteration10getBarrierEv(ptr noundef nonnull align 8 dereferenceable(172) %111)
  call void @_ZNSt10shared_ptrIN9NOMAD_4_311BarrierBaseEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %3, ptr noundef nonnull align 8 dereferenceable(16) %113) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #8
  %114 = load ptr, ptr %111, align 8, !tbaa !9
  %115 = getelementptr inbounds i8, ptr %114, i64 80
  %116 = load ptr, ptr %115, align 8
  invoke void %116(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.43") align 8 %4, ptr noundef nonnull align 8 dereferenceable(200) %111)
          to label %117 unwind label %139

117:                                              ; preds = %112
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #8
  store i32 9, ptr %6, align 4, !tbaa !11
  %118 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %6)
          to label %119 unwind label %141

119:                                              ; preds = %117
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #8
  br i1 %118, label %120, label %162

120:                                              ; preds = %119
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #8
  %121 = load ptr, ptr %0, align 8, !tbaa !9
  %122 = getelementptr inbounds i8, ptr %121, i64 16
  %123 = load ptr, ptr %122, align 8
  invoke void %123(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(140) %0)
          to label %124 unwind label %143

124:                                              ; preds = %120
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull @.str.11, ptr noundef nonnull align 8 dereferenceable(32) %9)
          to label %125 unwind label %145

125:                                              ; preds = %124
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.12)
          to label %126 unwind label %147

126:                                              ; preds = %125
  %127 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %128 unwind label %151

128:                                              ; preds = %126
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #8
  %129 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %130 = load ptr, ptr %129, align 8, !tbaa !9
  %131 = getelementptr inbounds i8, ptr %130, i64 72
  %132 = load ptr, ptr %131, align 8
  invoke void %132(ptr dead_on_unwind nonnull writable sret(%"class.std::vector.48") align 8 %10, ptr noundef nonnull align 8 dereferenceable(120) %129, i64 noundef 4)
          to label %133 unwind label %153

133:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #8
  %134 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  store ptr %134, ptr %11, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #8
  %135 = call ptr @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  store ptr %135, ptr %12, align 8
  %136 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #8
  br i1 %136, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %156, %133
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #8
  br label %162

137:                                              ; preds = %110
  %138 = landingpad { ptr, i32 }
          cleanup
  br label %687

139:                                              ; preds = %112
  %140 = landingpad { ptr, i32 }
          cleanup
  br label %686

141:                                              ; preds = %117
  %142 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #8
  br label %685

143:                                              ; preds = %120
  %144 = landingpad { ptr, i32 }
          cleanup
  br label %150

145:                                              ; preds = %124
  %146 = landingpad { ptr, i32 }
          cleanup
  br label %149

147:                                              ; preds = %125
  %148 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #8
  br label %149

149:                                              ; preds = %147, %145
  %.pn = phi { ptr, i32 } [ %148, %147 ], [ %146, %145 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #8
  br label %150

150:                                              ; preds = %149, %143
  %.pn.pn = phi { ptr, i32 } [ %.pn, %149 ], [ %144, %143 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #8
  br label %685

151:                                              ; preds = %126
  %152 = landingpad { ptr, i32 }
          cleanup
  br label %685

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

.lr.ph:                                           ; preds = %133, %156
  %155 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %155)
          to label %156 unwind label %159

156:                                              ; preds = %.lr.ph
  %157 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #8
  %158 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EESG_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #8
  br i1 %158, label %.lr.ph, label %._crit_edge

159:                                              ; preds = %.lr.ph
  %160 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #8
  call void @_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %10) #8
  br label %161

161:                                              ; preds = %159, %153
  %.pn195 = phi { ptr, i32 } [ %160, %159 ], [ %154, %153 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #8
  br label %685

162:                                              ; preds = %._crit_edge, %119
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %13) #8
  %163 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  call void @_ZNK9NOMAD_4_311BarrierBase14getRefBestFeasEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.58") align 8 %13, ptr noundef nonnull align 8 dereferenceable(120) %163)
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %14) #8
  %164 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  call void @_ZNK9NOMAD_4_311BarrierBase13getRefBestInfEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.58") align 8 %14, ptr noundef nonnull align 8 dereferenceable(120) %164)
  %165 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %166 = load ptr, ptr %165, align 8, !tbaa !9
  %167 = getelementptr inbounds i8, ptr %166, i64 16
  %168 = load ptr, ptr %167, align 8
  invoke void %168(ptr noundef nonnull align 8 dereferenceable(120) %165)
          to label %169 unwind label %203

169:                                              ; preds = %162
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %15) #8
  %170 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %171 = load ptr, ptr %170, align 8, !tbaa !9
  %172 = getelementptr inbounds i8, ptr %171, i64 8
  %173 = load ptr, ptr %172, align 8
  invoke void %173(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.58") align 8 %15, ptr noundef nonnull align 8 dereferenceable(120) %170)
          to label %174 unwind label %205

174:                                              ; preds = %169
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %16) #8
  %175 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %3) #8
  %176 = load ptr, ptr %175, align 8, !tbaa !9
  %177 = getelementptr inbounds i8, ptr %176, i64 32
  %178 = load ptr, ptr %177, align 8
  invoke void %178(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.58") align 8 %16, ptr noundef nonnull align 8 dereferenceable(120) %175)
          to label %179 unwind label %207

179:                                              ; preds = %174
  %180 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  br i1 %180, label %183, label %181

181:                                              ; preds = %179
  %182 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  br i1 %182, label %183, label %613

183:                                              ; preds = %181, %179
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %17) #8
  invoke void @_ZN9NOMAD_4_318ComputeSuccessTypeC2ENS_8EvalTypeENS_11ComputeTypeE(ptr noundef nonnull align 8 dereferenceable(32) %17, i32 noundef %.0, i32 noundef %.027)
          to label %184 unwind label %209

184:                                              ; preds = %183
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #8
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #8
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %19, ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %20, ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #8
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %21, ptr noundef nonnull align 8 dereferenceable(8) @_ZN9NOMAD_4_3L3INFE)
          to label %185 unwind label %211

185:                                              ; preds = %184
  %186 = invoke noundef i32 @_ZN9NOMAD_4_318ComputeSuccessTypeclESt10shared_ptrINS_9EvalPointEES3_RKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull %19, ptr noundef nonnull %20, ptr noundef nonnull align 8 dereferenceable(17) %21)
          to label %187 unwind label %213

187:                                              ; preds = %185
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %21) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #8
  %188 = icmp sgt i32 %186, 2
  br i1 %188, label %189, label %277

189:                                              ; preds = %187
  %190 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %22) #8
  %191 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  call void @_ZNK9NOMAD_4_39EvalPoint12getPointFromEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.58") align 8 %22, ptr noundef nonnull align 8 dereferenceable(160) %191)
  %192 = call noundef zeroext i1 @_ZSteqIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %22) #8
  br i1 %192, label %193, label %.critedge

193:                                              ; preds = %189
  %194 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #8
  br i1 %194, label %195, label %218

195:                                              ; preds = %193
  %196 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %23, ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  %197 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN9NOMAD_4_317SubproblemManager11getInstanceEv()
          to label %198 unwind label %216

198:                                              ; preds = %195
  %199 = call noundef ptr @_ZNKSt10unique_ptrIN9NOMAD_4_317SubproblemManagerESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %197) #8
  %200 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN9NOMAD_4_317SubproblemManager19getSubFixedVariableEPKNS_4StepE(ptr noundef nonnull align 8 dereferenceable(56) %199, ptr noundef nonnull %0)
          to label %201 unwind label %216

201:                                              ; preds = %198
  invoke void @_ZN9NOMAD_4_39EvalPoint12setPointFromESt10shared_ptrIS0_ERKNS_5PointE(ptr noundef nonnull align 8 dereferenceable(160) %196, ptr noundef nonnull %23, ptr noundef nonnull align 8 dereferenceable(24) %200)
          to label %202 unwind label %216

202:                                              ; preds = %201
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #8
  br label %218

203:                                              ; preds = %162
  %204 = landingpad { ptr, i32 }
          cleanup
  br label %684

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

207:                                              ; preds = %174
  %208 = landingpad { ptr, i32 }
          cleanup
  br label %682

209:                                              ; preds = %183
  %210 = landingpad { ptr, i32 }
          cleanup
  br label %612

211:                                              ; preds = %184
  %212 = landingpad { ptr, i32 }
          cleanup
  br label %215

213:                                              ; preds = %185
  %214 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %21) #8
  br label %215

215:                                              ; preds = %213, %211
  %.pn107 = phi { ptr, i32 } [ %214, %213 ], [ %212, %211 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %20) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %19) #8
  br label %611

216:                                              ; preds = %201, %198, %195
  %217 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %23) #8
  br label %611

.critedge:                                        ; preds = %189
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %22) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %22) #8
  br label %218

218:                                              ; preds = %.critedge, %202, %193
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %24) #8
  store i32 9, ptr %24, align 4, !tbaa !11
  %219 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %24)
          to label %220 unwind label %234

220:                                              ; preds = %218
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #8
  br i1 %219, label %221, label %.thread

221:                                              ; preds = %220
  %222 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.13)
          to label %223 unwind label %236

223:                                              ; preds = %221
  %224 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  br i1 %224, label %225, label %255

225:                                              ; preds = %223
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #8
  %226 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %28) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %29) #8
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %29)
          to label %227 unwind label %238

227:                                              ; preds = %225
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %28, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %29)
          to label %228 unwind label %240

228:                                              ; preds = %227
  invoke void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 8 dereferenceable(160) %226, ptr noundef nonnull align 8 dereferenceable(24) %28, ptr noundef nonnull align 4 dereferenceable(4) @_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE)
          to label %229 unwind label %242

229:                                              ; preds = %228
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull @.str.14, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %230 unwind label %244

230:                                              ; preds = %229
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull @.str.15)
          to label %231 unwind label %246

231:                                              ; preds = %230
  %232 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %25)
          to label %233 unwind label %248

233:                                              ; preds = %231
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #8
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %29) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  br label %255

234:                                              ; preds = %218
  %235 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %24) #8
  br label %611

236:                                              ; preds = %369, %367, %262, %221
  %237 = landingpad { ptr, i32 }
          cleanup
  br label %611

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

240:                                              ; preds = %227
  %241 = landingpad { ptr, i32 }
          cleanup
  br label %253

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

244:                                              ; preds = %229
  %245 = landingpad { ptr, i32 }
          cleanup
  br label %251

246:                                              ; preds = %230
  %247 = landingpad { ptr, i32 }
          cleanup
  br label %250

248:                                              ; preds = %231
  %249 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #8
  br label %250

250:                                              ; preds = %248, %246
  %.pn124 = phi { ptr, i32 } [ %249, %248 ], [ %247, %246 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #8
  br label %251

251:                                              ; preds = %250, %244
  %.pn124.pn = phi { ptr, i32 } [ %.pn124, %250 ], [ %245, %244 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #8
  br label %252

252:                                              ; preds = %251, %242
  %.pn124.pn.pn = phi { ptr, i32 } [ %.pn124.pn, %251 ], [ %243, %242 ]
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %28) #8
  br label %253

253:                                              ; preds = %252, %240
  %.pn124.pn.pn.pn = phi { ptr, i32 } [ %.pn124.pn.pn, %252 ], [ %241, %240 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %29) #8
  br label %254

254:                                              ; preds = %253, %238
  %.pn124.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn124.pn.pn.pn, %253 ], [ %239, %238 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %28) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #8
  br label %611

255:                                              ; preds = %233, %223
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %30) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %31) #8
  %256 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %15) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %32) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %33) #8
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %33)
          to label %257 unwind label %263

257:                                              ; preds = %255
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %32, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %33)
          to label %258 unwind label %265

258:                                              ; preds = %257
  invoke void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(160) %256, ptr noundef nonnull align 8 dereferenceable(24) %32, ptr noundef nonnull align 4 dereferenceable(4) @_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE)
          to label %259 unwind label %267

259:                                              ; preds = %258
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull @.str.16, ptr noundef nonnull align 8 dereferenceable(32) %31)
          to label %260 unwind label %269

260:                                              ; preds = %259
  %261 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %30)
          to label %262 unwind label %271

262:                                              ; preds = %260
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #8
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %33) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %.thread unwind label %236

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

265:                                              ; preds = %257
  %266 = landingpad { ptr, i32 }
          cleanup
  br label %275

267:                                              ; preds = %258
  %268 = landingpad { ptr, i32 }
          cleanup
  br label %274

269:                                              ; preds = %259
  %270 = landingpad { ptr, i32 }
          cleanup
  br label %273

271:                                              ; preds = %260
  %272 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #8
  br label %273

273:                                              ; preds = %271, %269
  %.pn130 = phi { ptr, i32 } [ %272, %271 ], [ %270, %269 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #8
  br label %274

274:                                              ; preds = %273, %267
  %.pn130.pn = phi { ptr, i32 } [ %.pn130, %273 ], [ %268, %267 ]
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %32) #8
  br label %275

275:                                              ; preds = %274, %265
  %.pn130.pn.pn = phi { ptr, i32 } [ %.pn130.pn, %274 ], [ %266, %265 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %33) #8
  br label %276

276:                                              ; preds = %275, %263
  %.pn130.pn.pn.pn = phi { ptr, i32 } [ %.pn130.pn.pn, %275 ], [ %264, %263 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %32) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %31) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %30) #8
  br label %611

277:                                              ; preds = %187
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %34, ptr noundef nonnull align 8 dereferenceable(16) %16) #8
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %35, ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %36) #8
  invoke void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17) %36, ptr noundef nonnull align 8 dereferenceable(8) @_ZN9NOMAD_4_3L3INFE)
          to label %278 unwind label %282

278:                                              ; preds = %277
  %279 = invoke noundef i32 @_ZN9NOMAD_4_318ComputeSuccessTypeclESt10shared_ptrINS_9EvalPointEES3_RKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull %34, ptr noundef nonnull %35, ptr noundef nonnull align 8 dereferenceable(17) %36)
          to label %280 unwind label %284

280:                                              ; preds = %278
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %36) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %36) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #8
  %spec.select = call i32 @llvm.smax.i32(i32 %279, i32 %186)
  %281 = icmp sgt i32 %spec.select, 2
  br i1 %281, label %287, label %362

282:                                              ; preds = %277
  %283 = landingpad { ptr, i32 }
          cleanup
  br label %286

284:                                              ; preds = %278
  %285 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %36) #8
  br label %286

286:                                              ; preds = %284, %282
  %.pn109 = phi { ptr, i32 } [ %285, %284 ], [ %283, %282 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %36) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %35) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %34) #8
  br label %611

287:                                              ; preds = %280
  %288 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEaSERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %18, ptr noundef nonnull align 8 dereferenceable(16) %16) #8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %37) #8
  %289 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  call void @_ZNK9NOMAD_4_39EvalPoint12getPointFromEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.58") align 8 %37, ptr noundef nonnull align 8 dereferenceable(160) %289)
  %290 = call noundef zeroext i1 @_ZSteqIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %37) #8
  br i1 %290, label %291, label %.critedge2

291:                                              ; preds = %287
  %292 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39EvalPointEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #8
  br i1 %292, label %293, label %303

293:                                              ; preds = %291
  %294 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %18) #8
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39EvalPointEEC2ERKS2_(ptr noundef nonnull align 8 dereferenceable(16) %38, ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  %295 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN9NOMAD_4_317SubproblemManager11getInstanceEv()
          to label %296 unwind label %301

296:                                              ; preds = %293
  %297 = call noundef ptr @_ZNKSt10unique_ptrIN9NOMAD_4_317SubproblemManagerESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %295) #8
  %298 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN9NOMAD_4_317SubproblemManager19getSubFixedVariableEPKNS_4StepE(ptr noundef nonnull align 8 dereferenceable(56) %297, ptr noundef nonnull %0)
          to label %299 unwind label %301

299:                                              ; preds = %296
  invoke void @_ZN9NOMAD_4_39EvalPoint12setPointFromESt10shared_ptrIS0_ERKNS_5PointE(ptr noundef nonnull align 8 dereferenceable(160) %294, ptr noundef nonnull %38, ptr noundef nonnull align 8 dereferenceable(24) %298)
          to label %300 unwind label %301

300:                                              ; preds = %299
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %38) #8
  br label %303

301:                                              ; preds = %299, %296, %293
  %302 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %38) #8
  br label %611

.critedge2:                                       ; preds = %287
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %37) #8
  br label %303

303:                                              ; preds = %.critedge2, %300, %291
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #8
  store i32 9, ptr %39, align 4, !tbaa !11
  %304 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %39)
          to label %305 unwind label %319

305:                                              ; preds = %303
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #8
  br i1 %304, label %306, label %.thread

306:                                              ; preds = %305
  %307 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.17)
          to label %308 unwind label %321

308:                                              ; preds = %306
  %309 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  br i1 %309, label %310, label %340

310:                                              ; preds = %308
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %40) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #8
  %311 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %43) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %44) #8
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %44)
          to label %312 unwind label %323

312:                                              ; preds = %310
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %43, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %44)
          to label %313 unwind label %325

313:                                              ; preds = %312
  invoke void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef nonnull align 8 dereferenceable(160) %311, ptr noundef nonnull align 8 dereferenceable(24) %43, ptr noundef nonnull align 4 dereferenceable(4) @_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE)
          to label %314 unwind label %327

314:                                              ; preds = %313
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull @.str.14, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %315 unwind label %329

315:                                              ; preds = %314
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %40, ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull @.str.15)
          to label %316 unwind label %331

316:                                              ; preds = %315
  %317 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %40)
          to label %318 unwind label %333

318:                                              ; preds = %316
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #8
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %44) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %44) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #8
  br label %340

319:                                              ; preds = %303
  %320 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #8
  br label %611

321:                                              ; preds = %347, %306
  %322 = landingpad { ptr, i32 }
          cleanup
  br label %611

323:                                              ; preds = %310
  %324 = landingpad { ptr, i32 }
          cleanup
  br label %339

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

327:                                              ; preds = %313
  %328 = landingpad { ptr, i32 }
          cleanup
  br label %337

329:                                              ; preds = %314
  %330 = landingpad { ptr, i32 }
          cleanup
  br label %336

331:                                              ; preds = %315
  %332 = landingpad { ptr, i32 }
          cleanup
  br label %335

333:                                              ; preds = %316
  %334 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %40) #8
  br label %335

335:                                              ; preds = %333, %331
  %.pn111 = phi { ptr, i32 } [ %334, %333 ], [ %332, %331 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #8
  br label %336

336:                                              ; preds = %335, %329
  %.pn111.pn = phi { ptr, i32 } [ %.pn111, %335 ], [ %330, %329 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #8
  br label %337

337:                                              ; preds = %336, %327
  %.pn111.pn.pn = phi { ptr, i32 } [ %.pn111.pn, %336 ], [ %328, %327 ]
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %43) #8
  br label %338

338:                                              ; preds = %337, %325
  %.pn111.pn.pn.pn = phi { ptr, i32 } [ %.pn111.pn.pn, %337 ], [ %326, %325 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %44) #8
  br label %339

339:                                              ; preds = %338, %323
  %.pn111.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn111.pn.pn.pn, %338 ], [ %324, %323 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %44) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %43) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %40) #8
  br label %611

340:                                              ; preds = %318, %308
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %45) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %46) #8
  %341 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %47) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %48) #8
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %48)
          to label %342 unwind label %348

342:                                              ; preds = %340
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %47, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %48)
          to label %343 unwind label %350

343:                                              ; preds = %342
  invoke void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr noundef nonnull align 8 dereferenceable(160) %341, ptr noundef nonnull align 8 dereferenceable(24) %47, ptr noundef nonnull align 4 dereferenceable(4) @_ZN9NOMAD_4_3L22DISPLAY_PRECISION_FULLE)
          to label %344 unwind label %352

344:                                              ; preds = %343
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %45, ptr noundef nonnull @.str.16, ptr noundef nonnull align 8 dereferenceable(32) %46)
          to label %345 unwind label %354

345:                                              ; preds = %344
  %346 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %45)
          to label %347 unwind label %356

347:                                              ; preds = %345
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #8
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %48) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #8
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %.thread unwind label %321

348:                                              ; preds = %340
  %349 = landingpad { ptr, i32 }
          cleanup
  br label %361

350:                                              ; preds = %342
  %351 = landingpad { ptr, i32 }
          cleanup
  br label %360

352:                                              ; preds = %343
  %353 = landingpad { ptr, i32 }
          cleanup
  br label %359

354:                                              ; preds = %344
  %355 = landingpad { ptr, i32 }
          cleanup
  br label %358

356:                                              ; preds = %345
  %357 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %45) #8
  br label %358

358:                                              ; preds = %356, %354
  %.pn117 = phi { ptr, i32 } [ %357, %356 ], [ %355, %354 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %46) #8
  br label %359

359:                                              ; preds = %358, %352
  %.pn117.pn = phi { ptr, i32 } [ %.pn117, %358 ], [ %353, %352 ]
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %47) #8
  br label %360

360:                                              ; preds = %359, %350
  %.pn117.pn.pn = phi { ptr, i32 } [ %.pn117.pn, %359 ], [ %351, %350 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %48) #8
  br label %361

361:                                              ; preds = %360, %348
  %.pn117.pn.pn.pn = phi { ptr, i32 } [ %.pn117.pn.pn, %360 ], [ %349, %348 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %48) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %47) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %46) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %45) #8
  br label %611

362:                                              ; preds = %280
  %363 = icmp eq i32 %spec.select, 2
  br i1 %363, label %364, label %.thread

364:                                              ; preds = %362
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %49) #8
  store i32 9, ptr %49, align 4, !tbaa !11
  %365 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %49)
          to label %366 unwind label %370

366:                                              ; preds = %364
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #8
  br i1 %365, label %367, label %.thread

367:                                              ; preds = %366
  %368 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.18)
          to label %369 unwind label %236

369:                                              ; preds = %367
  invoke void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %.thread unwind label %236

370:                                              ; preds = %364
  %371 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %49) #8
  br label %611

.thread:                                          ; preds = %347, %305, %220, %262, %366, %369, %362
  %.1202 = phi i32 [ 2, %366 ], [ 2, %369 ], [ %spec.select, %362 ], [ %spec.select, %347 ], [ %spec.select, %305 ], [ %186, %220 ], [ %186, %262 ]
  %372 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_316EvaluatorControlEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  br i1 %372, label %373, label %385

373:                                              ; preds = %.thread
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %50) #8
  %374 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #8
  call void @_ZNK9NOMAD_4_316EvaluatorControl31getEvaluatorControlGlobalParamsEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.17") align 8 %50, ptr noundef nonnull align 8 dereferenceable(352) %374)
  %375 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_332EvaluatorControlGlobalParametersELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %50) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %51) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %52) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef nonnull @.str.19, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %376 unwind label %380

376:                                              ; preds = %373
  %377 = invoke noundef nonnull align 1 dereferenceable(1) ptr @_ZNK9NOMAD_4_310Parameters17getAttributeValueIbEERKT_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb(ptr noundef nonnull align 8 dereferenceable(496) %375, ptr noundef nonnull align 8 dereferenceable(32) %51, i1 noundef zeroext false)
          to label %378 unwind label %382

378:                                              ; preds = %376
  %379 = load i8, ptr %377, align 1, !tbaa !13, !range !15, !noundef !16
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_332EvaluatorControlGlobalParametersELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %50) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #8
  br label %385

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

382:                                              ; preds = %376
  %383 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #8
  br label %384

384:                                              ; preds = %382, %380
  %.pn135 = phi { ptr, i32 } [ %383, %382 ], [ %381, %380 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %52) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %51) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_332EvaluatorControlGlobalParametersELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %50) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %50) #8
  br label %611

385:                                              ; preds = %378, %.thread
  %.026 = phi i8 [ %379, %378 ], [ 1, %.thread ]
  %386 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_34Step14getSuccessTypeEv(ptr noundef nonnull align 8 dereferenceable(140) %111)
  %387 = trunc nuw i8 %.026 to i1
  %388 = load i32, ptr %386, align 4
  %.not = icmp eq i32 %388, 0
  %or.cond = select i1 %387, i1 true, i1 %.not
  br i1 %or.cond, label %483, label %389

389:                                              ; preds = %385
  %390 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_34Step14getSuccessTypeEv(ptr noundef nonnull align 8 dereferenceable(140) %111)
  %391 = load i32, ptr %390, align 4, !tbaa !17
  %.not137 = icmp eq i32 %.1202, %391
  br i1 %.not137, label %483, label %392

392:                                              ; preds = %389
  %393 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.20)
          to label %394 unwind label %411

394:                                              ; preds = %392
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %53) #8
  %395 = call noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_34Step14getSuccessTypeEv(ptr noundef nonnull align 8 dereferenceable(140) %111)
  %396 = load i32, ptr %395, align 4, !tbaa !17
  invoke void @_ZN9NOMAD_4_37enumStrB5cxx11ENS_11SuccessTypeE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %53, i32 noundef %396)
          to label %397 unwind label %413

397:                                              ; preds = %394
  %398 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %53)
          to label %399 unwind label %415

399:                                              ; preds = %397
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %54) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) #8
  invoke void @_ZN9NOMAD_4_37enumStrB5cxx11ENS_11SuccessTypeE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %55, i32 noundef %.1202)
          to label %400 unwind label %418

400:                                              ; preds = %399
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %54, ptr noundef nonnull @.str.21, ptr noundef nonnull align 8 dereferenceable(32) %55)
          to label %401 unwind label %420

401:                                              ; preds = %400
  %402 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %54)
          to label %403 unwind label %422

403:                                              ; preds = %401
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #8
  %404 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  br i1 %404, label %405, label %434

405:                                              ; preds = %403
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %56) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %57) #8
  %406 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %13) #8
  invoke void @_ZNK9NOMAD_4_39EvalPoint10displayAllB5cxx11ENS_11ComputeTypeE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %57, ptr noundef nonnull align 8 dereferenceable(160) %406, i32 noundef 0)
          to label %407 unwind label %426

407:                                              ; preds = %405
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %56, ptr noundef nonnull @.str.22, ptr noundef nonnull align 8 dereferenceable(32) %57)
          to label %408 unwind label %428

408:                                              ; preds = %407
  %409 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %56)
          to label %410 unwind label %430

410:                                              ; preds = %408
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #8
  br label %434

411:                                              ; preds = %605, %482, %392
  %412 = landingpad { ptr, i32 }
          cleanup
  br label %611

413:                                              ; preds = %394
  %414 = landingpad { ptr, i32 }
          cleanup
  br label %417

415:                                              ; preds = %397
  %416 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %53) #8
  br label %417

417:                                              ; preds = %415, %413
  %.pn138 = phi { ptr, i32 } [ %416, %415 ], [ %414, %413 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %53) #8
  br label %611

418:                                              ; preds = %399
  %419 = landingpad { ptr, i32 }
          cleanup
  br label %425

420:                                              ; preds = %400
  %421 = landingpad { ptr, i32 }
          cleanup
  br label %424

422:                                              ; preds = %401
  %423 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #8
  br label %424

424:                                              ; preds = %422, %420
  %.pn140 = phi { ptr, i32 } [ %423, %422 ], [ %421, %420 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %55) #8
  br label %425

425:                                              ; preds = %424, %418
  %.pn140.pn = phi { ptr, i32 } [ %.pn140, %424 ], [ %419, %418 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %55) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %54) #8
  br label %611

426:                                              ; preds = %405
  %427 = landingpad { ptr, i32 }
          cleanup
  br label %433

428:                                              ; preds = %407
  %429 = landingpad { ptr, i32 }
          cleanup
  br label %432

430:                                              ; preds = %408
  %431 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %56) #8
  br label %432

432:                                              ; preds = %430, %428
  %.pn143 = phi { ptr, i32 } [ %431, %430 ], [ %429, %428 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %57) #8
  br label %433

433:                                              ; preds = %432, %426
  %.pn143.pn = phi { ptr, i32 } [ %.pn143, %432 ], [ %427, %426 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %57) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %56) #8
  br label %611

434:                                              ; preds = %410, %403
  %435 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  br i1 %435, label %436, label %450

436:                                              ; preds = %434
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %58) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %59) #8
  %437 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %15) #8
  invoke void @_ZNK9NOMAD_4_39EvalPoint10displayAllB5cxx11ENS_11ComputeTypeE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %59, ptr noundef nonnull align 8 dereferenceable(160) %437, i32 noundef 0)
          to label %438 unwind label %442

438:                                              ; preds = %436
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %58, ptr noundef nonnull @.str.23, ptr noundef nonnull align 8 dereferenceable(32) %59)
          to label %439 unwind label %444

439:                                              ; preds = %438
  %440 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %58)
          to label %441 unwind label %446

441:                                              ; preds = %439
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #8
  br label %450

442:                                              ; preds = %436
  %443 = landingpad { ptr, i32 }
          cleanup
  br label %449

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

446:                                              ; preds = %439
  %447 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %58) #8
  br label %448

448:                                              ; preds = %446, %444
  %.pn146 = phi { ptr, i32 } [ %447, %446 ], [ %445, %444 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %59) #8
  br label %449

449:                                              ; preds = %448, %442
  %.pn146.pn = phi { ptr, i32 } [ %.pn146, %448 ], [ %443, %442 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %59) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %58) #8
  br label %611

450:                                              ; preds = %441, %434
  %451 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  br i1 %451, label %452, label %466

452:                                              ; preds = %450
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %60) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %61) #8
  %453 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %14) #8
  invoke void @_ZNK9NOMAD_4_39EvalPoint10displayAllB5cxx11ENS_11ComputeTypeE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef nonnull align 8 dereferenceable(160) %453, i32 noundef 0)
          to label %454 unwind label %458

454:                                              ; preds = %452
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %60, ptr noundef nonnull @.str.24, ptr noundef nonnull align 8 dereferenceable(32) %61)
          to label %455 unwind label %460

455:                                              ; preds = %454
  %456 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %60)
          to label %457 unwind label %462

457:                                              ; preds = %455
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #8
  br label %466

458:                                              ; preds = %452
  %459 = landingpad { ptr, i32 }
          cleanup
  br label %465

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

462:                                              ; preds = %455
  %463 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %60) #8
  br label %464

464:                                              ; preds = %462, %460
  %.pn149 = phi { ptr, i32 } [ %463, %462 ], [ %461, %460 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #8
  br label %465

465:                                              ; preds = %464, %458
  %.pn149.pn = phi { ptr, i32 } [ %.pn149, %464 ], [ %459, %458 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %61) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %60) #8
  br label %611

466:                                              ; preds = %457, %450
  %467 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %16) #8
  br i1 %467, label %468, label %482

468:                                              ; preds = %466
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %62) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %63) #8
  %469 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  invoke void @_ZNK9NOMAD_4_39EvalPoint10displayAllB5cxx11ENS_11ComputeTypeE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %63, ptr noundef nonnull align 8 dereferenceable(160) %469, i32 noundef 0)
          to label %470 unwind label %474

470:                                              ; preds = %468
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull @.str.25, ptr noundef nonnull align 8 dereferenceable(32) %63)
          to label %471 unwind label %476

471:                                              ; preds = %470
  %472 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %473 unwind label %478

473:                                              ; preds = %471
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #8
  br label %482

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

476:                                              ; preds = %470
  %477 = landingpad { ptr, i32 }
          cleanup
  br label %480

478:                                              ; preds = %471
  %479 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #8
  br label %480

480:                                              ; preds = %478, %476
  %.pn152 = phi { ptr, i32 } [ %479, %478 ], [ %477, %476 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #8
  br label %481

481:                                              ; preds = %480, %474
  %.pn152.pn = phi { ptr, i32 } [ %.pn152, %480 ], [ %475, %474 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %63) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %62) #8
  br label %611

482:                                              ; preds = %473, %466
  invoke void @_ZNK9NOMAD_4_34Step16AddOutputWarningERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %5)
          to label %483 unwind label %411

483:                                              ; preds = %482, %389, %385
  %484 = icmp eq i32 %.0, 0
  br i1 %484, label %485, label %577

485:                                              ; preds = %483
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %64) #8
  %486 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  br i1 %486, label %487, label %489

487:                                              ; preds = %485
  %488 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %15) #8
  call void @_ZNK9NOMAD_4_39EvalPoint12getDirectionEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.74") align 8 %64, ptr noundef nonnull align 8 dereferenceable(160) %488)
  br label %490

489:                                              ; preds = %485
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39DirectionEEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %64, ptr null) #8
  br label %490

490:                                              ; preds = %489, %487
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %65) #8
  %491 = call noundef zeroext i1 @_ZNKSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EEcvbEv(ptr noundef nonnull align 8 dereferenceable(16) %16) #8
  br i1 %491, label %492, label %494

492:                                              ; preds = %490
  %493 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %16) #8
  call void @_ZNK9NOMAD_4_39EvalPoint12getDirectionEv(ptr dead_on_unwind nonnull writable sret(%"class.std::shared_ptr.74") align 8 %65, ptr noundef nonnull align 8 dereferenceable(160) %493)
  br label %495

494:                                              ; preds = %490
  call void @_ZNSt10shared_ptrIN9NOMAD_4_39DirectionEEC2EDn(ptr noundef nonnull align 8 dereferenceable(16) %65, ptr null) #8
  br label %495

495:                                              ; preds = %494, %492
  %496 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39DirectionEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %64) #8
  br i1 %496, label %497, label %531

497:                                              ; preds = %495
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %66) #8
  store i32 7, ptr %66, align 4, !tbaa !11
  %498 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %66)
          to label %499 unwind label %512

499:                                              ; preds = %497
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %66) #8
  br i1 %498, label %500, label %531

500:                                              ; preds = %499
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %67) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %68) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull @.str.26, ptr noundef nonnull align 1 dereferenceable(1) %68)
          to label %501 unwind label %514

501:                                              ; preds = %500
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %69) #8
  %502 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %64) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %70) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %71) #8
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %71)
          to label %503 unwind label %516

503:                                              ; preds = %501
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %70, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %71)
          to label %504 unwind label %518

504:                                              ; preds = %503
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %72) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #8
  %505 = load ptr, ptr %502, align 8, !tbaa !9
  %506 = getelementptr inbounds i8, ptr %505, i64 48
  %507 = load ptr, ptr %506, align 8
  invoke void %507(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr noundef nonnull align 8 dereferenceable(24) %502, ptr noundef nonnull align 8 dereferenceable(24) %70, ptr noundef nonnull align 8 dereferenceable(32) %72)
          to label %508 unwind label %520

508:                                              ; preds = %504
  %509 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(32) %69)
          to label %510 unwind label %522

510:                                              ; preds = %508
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %70) #8
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %71) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %71) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %70) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #8
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %67, i32 noundef 7)
          to label %511 unwind label %527

511:                                              ; preds = %510
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #8
  br label %531

512:                                              ; preds = %497
  %513 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %66) #8
  br label %576

514:                                              ; preds = %500
  %515 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %68) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %68) #8
  br label %530

516:                                              ; preds = %501
  %517 = landingpad { ptr, i32 }
          cleanup
  br label %526

518:                                              ; preds = %503
  %519 = landingpad { ptr, i32 }
          cleanup
  br label %525

520:                                              ; preds = %504
  %521 = landingpad { ptr, i32 }
          cleanup
  br label %524

522:                                              ; preds = %508
  %523 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %69) #8
  br label %524

524:                                              ; preds = %522, %520
  %.pn155 = phi { ptr, i32 } [ %523, %522 ], [ %521, %520 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %72) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %72) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %70) #8
  br label %525

525:                                              ; preds = %524, %518
  %.pn155.pn = phi { ptr, i32 } [ %.pn155, %524 ], [ %519, %518 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %71) #8
  br label %526

526:                                              ; preds = %525, %516
  %.pn155.pn.pn = phi { ptr, i32 } [ %.pn155.pn, %525 ], [ %517, %516 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %71) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %70) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %69) #8
  br label %529

527:                                              ; preds = %510
  %528 = landingpad { ptr, i32 }
          cleanup
  br label %529

529:                                              ; preds = %527, %526
  %.pn159 = phi { ptr, i32 } [ %528, %527 ], [ %.pn155.pn.pn, %526 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %67) #8
  br label %530

530:                                              ; preds = %529, %514
  %.pn159.pn = phi { ptr, i32 } [ %.pn159, %529 ], [ %515, %514 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %67) #8
  br label %576

531:                                              ; preds = %499, %511, %495
  %532 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_39DirectionEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %65) #8
  br i1 %532, label %533, label %567

533:                                              ; preds = %531
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %73) #8
  store i32 7, ptr %73, align 4, !tbaa !11
  %534 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %73)
          to label %535 unwind label %548

535:                                              ; preds = %533
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %73) #8
  br i1 %534, label %536, label %567

536:                                              ; preds = %535
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %74) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %75) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull @.str.27, ptr noundef nonnull align 1 dereferenceable(1) %75)
          to label %537 unwind label %550

537:                                              ; preds = %536
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %75) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %76) #8
  %538 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %65) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %77) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %78) #8
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %78)
          to label %539 unwind label %552

539:                                              ; preds = %537
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %77, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %78)
          to label %540 unwind label %554

540:                                              ; preds = %539
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %79) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  %541 = load ptr, ptr %538, align 8, !tbaa !9
  %542 = getelementptr inbounds i8, ptr %541, i64 48
  %543 = load ptr, ptr %542, align 8
  invoke void %543(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr noundef nonnull align 8 dereferenceable(24) %538, ptr noundef nonnull align 8 dereferenceable(24) %77, ptr noundef nonnull align 8 dereferenceable(32) %79)
          to label %544 unwind label %556

544:                                              ; preds = %540
  %545 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull align 8 dereferenceable(32) %76)
          to label %546 unwind label %558

546:                                              ; preds = %544
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %77) #8
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %78) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %78) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %77) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #8
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %74, i32 noundef 7)
          to label %547 unwind label %563

547:                                              ; preds = %546
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #8
  br label %567

548:                                              ; preds = %533
  %549 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %73) #8
  br label %576

550:                                              ; preds = %536
  %551 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %75) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %75) #8
  br label %566

552:                                              ; preds = %537
  %553 = landingpad { ptr, i32 }
          cleanup
  br label %562

554:                                              ; preds = %539
  %555 = landingpad { ptr, i32 }
          cleanup
  br label %561

556:                                              ; preds = %540
  %557 = landingpad { ptr, i32 }
          cleanup
  br label %560

558:                                              ; preds = %544
  %559 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %76) #8
  br label %560

560:                                              ; preds = %558, %556
  %.pn162 = phi { ptr, i32 } [ %559, %558 ], [ %557, %556 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %79) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %79) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %77) #8
  br label %561

561:                                              ; preds = %560, %554
  %.pn162.pn = phi { ptr, i32 } [ %.pn162, %560 ], [ %555, %554 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %78) #8
  br label %562

562:                                              ; preds = %561, %552
  %.pn162.pn.pn = phi { ptr, i32 } [ %.pn162.pn, %561 ], [ %553, %552 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %78) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %77) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %76) #8
  br label %565

563:                                              ; preds = %546
  %564 = landingpad { ptr, i32 }
          cleanup
  br label %565

565:                                              ; preds = %563, %562
  %.pn166 = phi { ptr, i32 } [ %564, %563 ], [ %.pn162.pn.pn, %562 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %74) #8
  br label %566

566:                                              ; preds = %565, %550
  %.pn166.pn = phi { ptr, i32 } [ %.pn166, %565 ], [ %551, %550 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %74) #8
  br label %576

567:                                              ; preds = %535, %547, %531
  %568 = call noundef zeroext i1 @_ZStneIN9NOMAD_4_316EvaluatorControlEEbDnRKSt10shared_ptrIT_E(ptr null, ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  br i1 %568, label %569, label %575

569:                                              ; preds = %567
  %570 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #8
  invoke void @_ZN9NOMAD_4_316EvaluatorControl24setLastSuccessfulFeasDirERKSt10shared_ptrINS_9DirectionEE(ptr noundef nonnull align 8 dereferenceable(352) %570, ptr noundef nonnull align 8 dereferenceable(16) %64)
          to label %571 unwind label %573

571:                                              ; preds = %569
  %572 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %2) #8
  invoke void @_ZN9NOMAD_4_316EvaluatorControl23setLastSuccessfulInfDirERKSt10shared_ptrINS_9DirectionEE(ptr noundef nonnull align 8 dereferenceable(352) %572, ptr noundef nonnull align 8 dereferenceable(16) %65)
          to label %575 unwind label %573

573:                                              ; preds = %571, %569
  %574 = landingpad { ptr, i32 }
          cleanup
  br label %576

575:                                              ; preds = %571, %567
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %65) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %65) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %64) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %64) #8
  br label %577

576:                                              ; preds = %573, %566, %548, %530, %512
  %.pn169 = phi { ptr, i32 } [ %574, %573 ], [ %.pn166.pn, %566 ], [ %549, %548 ], [ %.pn159.pn, %530 ], [ %513, %512 ]
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %65) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %65) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39DirectionELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %64) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %64) #8
  br label %611

577:                                              ; preds = %575, %483
  %578 = icmp sgt i32 %.1202, 2
  br i1 %578, label %579, label %592

579:                                              ; preds = %577
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %80) #8
  store i32 7, ptr %80, align 4, !tbaa !11
  %580 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %80)
          to label %581 unwind label %585

581:                                              ; preds = %579
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %80) #8
  br i1 %580, label %582, label %610

582:                                              ; preds = %581
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %81) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %82) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %81, ptr noundef nonnull @.str.28, ptr noundef nonnull align 1 dereferenceable(1) %82)
          to label %583 unwind label %587

583:                                              ; preds = %582
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %81, i32 noundef 7)
          to label %584 unwind label %589

584:                                              ; preds = %583
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %82) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #8
  br label %610

585:                                              ; preds = %579
  %586 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %80) #8
  br label %611

587:                                              ; preds = %582
  %588 = landingpad { ptr, i32 }
          cleanup
  br label %591

589:                                              ; preds = %583
  %590 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %81) #8
  br label %591

591:                                              ; preds = %589, %587
  %.pn173 = phi { ptr, i32 } [ %590, %589 ], [ %588, %587 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %82) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %82) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %81) #8
  br label %611

592:                                              ; preds = %577
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %83) #8
  store i32 7, ptr %83, align 4, !tbaa !11
  %593 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %83)
          to label %594 unwind label %598

594:                                              ; preds = %592
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %83) #8
  br i1 %593, label %595, label %605

595:                                              ; preds = %594
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %84) #8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %85) #8
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #8
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %84, ptr noundef nonnull @.str.29, ptr noundef nonnull align 1 dereferenceable(1) %85)
          to label %596 unwind label %600

596:                                              ; preds = %595
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %84, i32 noundef 7)
          to label %597 unwind label %602

597:                                              ; preds = %596
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #8
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %85) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #8
  br label %605

598:                                              ; preds = %592
  %599 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %83) #8
  br label %611

600:                                              ; preds = %595
  %601 = landingpad { ptr, i32 }
          cleanup
  br label %604

602:                                              ; preds = %596
  %603 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %84) #8
  br label %604

604:                                              ; preds = %602, %600
  %.pn171 = phi { ptr, i32 } [ %603, %602 ], [ %601, %600 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %85) #8
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %85) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %84) #8
  br label %611

605:                                              ; preds = %597, %594
  %606 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %607 = load ptr, ptr %606, align 8, !tbaa !9
  %608 = getelementptr inbounds i8, ptr %607, i64 40
  %609 = load ptr, ptr %608, align 8
  invoke void %609(ptr noundef nonnull align 8 dereferenceable(257) %606)
          to label %610 unwind label %411

610:                                              ; preds = %605, %581, %584
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #8
  call void @_ZN9NOMAD_4_318ComputeSuccessTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  br label %613

611:                                              ; preds = %384, %604, %598, %591, %585, %576, %481, %465, %449, %433, %425, %417, %411, %286, %301, %319, %321, %339, %361, %370, %276, %254, %236, %234, %216, %215
  %.pn173.pn.pn.pn = phi { ptr, i32 } [ %237, %236 ], [ %371, %370 ], [ %.pn130.pn.pn.pn, %276 ], [ %.pn124.pn.pn.pn.pn, %254 ], [ %235, %234 ], [ %217, %216 ], [ %.pn107, %215 ], [ %322, %321 ], [ %.pn117.pn.pn.pn, %361 ], [ %.pn111.pn.pn.pn.pn, %339 ], [ %320, %319 ], [ %302, %301 ], [ %.pn109, %286 ], [ %.pn135, %384 ], [ %.pn173, %591 ], [ %586, %585 ], [ %412, %411 ], [ %.pn171, %604 ], [ %599, %598 ], [ %.pn169, %576 ], [ %.pn152.pn, %481 ], [ %.pn149.pn, %465 ], [ %.pn146.pn, %449 ], [ %.pn143.pn, %433 ], [ %.pn140.pn, %425 ], [ %.pn138, %417 ]
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %18) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #8
  call void @_ZN9NOMAD_4_318ComputeSuccessTypeD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #8
  br label %612

612:                                              ; preds = %611, %209
  %.pn173.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn173.pn.pn.pn, %611 ], [ %210, %209 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #8
  br label %681

613:                                              ; preds = %610, %181
  %614 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %615 = load ptr, ptr %614, align 8, !tbaa !9
  %616 = getelementptr inbounds i8, ptr %615, i64 24
  %617 = load ptr, ptr %616, align 8
  invoke void %617(ptr noundef nonnull align 8 dereferenceable(257) %614)
          to label %618 unwind label %642

618:                                              ; preds = %613
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %86) #8
  store i32 7, ptr %86, align 4, !tbaa !11
  %619 = invoke noundef zeroext i1 @_ZN9NOMAD_4_311OutputQueue9GoodLevelERKNS_11OutputLevelE(ptr noundef nonnull align 4 dereferenceable(4) %86)
          to label %620 unwind label %644

620:                                              ; preds = %618
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %86) #8
  br i1 %619, label %621, label %680

621:                                              ; preds = %620
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %87) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %88) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %89) #8
  %622 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %623 = load ptr, ptr %622, align 8, !tbaa !9
  %624 = getelementptr inbounds i8, ptr %623, i64 96
  %625 = load ptr, ptr %624, align 8
  invoke void %625(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::ArrayOfDouble") align 8 %89, ptr noundef nonnull align 8 dereferenceable(257) %622)
          to label %626 unwind label %646

626:                                              ; preds = %621
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %90) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %91) #8
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %91)
          to label %627 unwind label %648

627:                                              ; preds = %626
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %90, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %91)
          to label %628 unwind label %650

628:                                              ; preds = %627
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %92) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #8
  invoke void @_ZNK9NOMAD_4_313ArrayOfDouble7displayERKS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %88, ptr noundef nonnull align 8 dereferenceable(24) %89, ptr noundef nonnull align 8 dereferenceable(24) %90, ptr noundef nonnull align 8 dereferenceable(32) %92)
          to label %629 unwind label %652

629:                                              ; preds = %628
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %87, ptr noundef nonnull @.str.30, ptr noundef nonnull align 8 dereferenceable(32) %88)
          to label %630 unwind label %654

630:                                              ; preds = %629
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %87, i32 noundef 7)
          to label %631 unwind label %656

631:                                              ; preds = %630
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %90) #8
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %91) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %91) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %90) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %89) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %93) #8
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %94) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %95) #8
  %632 = call noundef ptr @_ZNKSt19__shared_ptr_accessIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2ELb0ELb0EEptEv(ptr noundef nonnull align 1 dereferenceable(1) %4) #8
  %633 = load ptr, ptr %632, align 8, !tbaa !9
  %634 = getelementptr inbounds i8, ptr %633, i64 112
  %635 = load ptr, ptr %634, align 8
  invoke void %635(ptr dead_on_unwind nonnull writable sret(%"class.NOMAD_4_3::ArrayOfDouble") align 8 %95, ptr noundef nonnull align 8 dereferenceable(257) %632)
          to label %636 unwind label %663

636:                                              ; preds = %631
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %96) #8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %97) #8
  invoke void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17) %97)
          to label %637 unwind label %665

637:                                              ; preds = %636
  invoke void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24) %96, i64 noundef 0, ptr noundef nonnull align 8 dereferenceable(17) %97)
          to label %638 unwind label %667

638:                                              ; preds = %637
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %98) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #8
  invoke void @_ZNK9NOMAD_4_313ArrayOfDouble7displayERKS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %94, ptr noundef nonnull align 8 dereferenceable(24) %95, ptr noundef nonnull align 8 dereferenceable(24) %96, ptr noundef nonnull align 8 dereferenceable(32) %98)
          to label %639 unwind label %669

639:                                              ; preds = %638
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %93, ptr noundef nonnull @.str.31, ptr noundef nonnull align 8 dereferenceable(32) %94)
          to label %640 unwind label %671

640:                                              ; preds = %639
  invoke void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 8 dereferenceable(32) %93, i32 noundef 7)
          to label %641 unwind label %673

641:                                              ; preds = %640
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %96) #8
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %97) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %97) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %96) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %95) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %95) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #8
  br label %680

642:                                              ; preds = %613
  %643 = landingpad { ptr, i32 }
          cleanup
  br label %681

644:                                              ; preds = %618
  %645 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %86) #8
  br label %681

646:                                              ; preds = %621
  %647 = landingpad { ptr, i32 }
          cleanup
  br label %662

648:                                              ; preds = %626
  %649 = landingpad { ptr, i32 }
          cleanup
  br label %661

650:                                              ; preds = %627
  %651 = landingpad { ptr, i32 }
          cleanup
  br label %660

652:                                              ; preds = %628
  %653 = landingpad { ptr, i32 }
          cleanup
  br label %659

654:                                              ; preds = %629
  %655 = landingpad { ptr, i32 }
          cleanup
  br label %658

656:                                              ; preds = %630
  %657 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %87) #8
  br label %658

658:                                              ; preds = %656, %654
  %.pn179 = phi { ptr, i32 } [ %657, %656 ], [ %655, %654 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %88) #8
  br label %659

659:                                              ; preds = %658, %652
  %.pn179.pn = phi { ptr, i32 } [ %.pn179, %658 ], [ %653, %652 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %92) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %92) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %90) #8
  br label %660

660:                                              ; preds = %659, %650
  %.pn179.pn.pn = phi { ptr, i32 } [ %.pn179.pn, %659 ], [ %651, %650 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %91) #8
  br label %661

661:                                              ; preds = %660, %648
  %.pn179.pn.pn.pn = phi { ptr, i32 } [ %.pn179.pn.pn, %660 ], [ %649, %648 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %91) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %90) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %89) #8
  br label %662

662:                                              ; preds = %661, %646
  %.pn179.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn179.pn.pn.pn, %661 ], [ %647, %646 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %89) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %88) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %87) #8
  br label %681

663:                                              ; preds = %631
  %664 = landingpad { ptr, i32 }
          cleanup
  br label %679

665:                                              ; preds = %636
  %666 = landingpad { ptr, i32 }
          cleanup
  br label %678

667:                                              ; preds = %637
  %668 = landingpad { ptr, i32 }
          cleanup
  br label %677

669:                                              ; preds = %638
  %670 = landingpad { ptr, i32 }
          cleanup
  br label %676

671:                                              ; preds = %639
  %672 = landingpad { ptr, i32 }
          cleanup
  br label %675

673:                                              ; preds = %640
  %674 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %93) #8
  br label %675

675:                                              ; preds = %673, %671
  %.pn185 = phi { ptr, i32 } [ %674, %673 ], [ %672, %671 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %94) #8
  br label %676

676:                                              ; preds = %675, %669
  %.pn185.pn = phi { ptr, i32 } [ %.pn185, %675 ], [ %670, %669 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %98) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %98) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %96) #8
  br label %677

677:                                              ; preds = %676, %667
  %.pn185.pn.pn = phi { ptr, i32 } [ %.pn185.pn, %676 ], [ %668, %667 ]
  call void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17) %97) #8
  br label %678

678:                                              ; preds = %677, %665
  %.pn185.pn.pn.pn = phi { ptr, i32 } [ %.pn185.pn.pn, %677 ], [ %666, %665 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %97) #8
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %96) #8
  call void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %95) #8
  br label %679

679:                                              ; preds = %678, %663
  %.pn185.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn185.pn.pn.pn, %678 ], [ %664, %663 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %95) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %94) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %93) #8
  br label %681

680:                                              ; preds = %641, %620
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #8
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #8
  ret i1 true

681:                                              ; preds = %679, %662, %644, %642, %612
  %.pn185.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn185.pn.pn.pn.pn, %679 ], [ %.pn179.pn.pn.pn.pn, %662 ], [ %645, %644 ], [ %643, %642 ], [ %.pn173.pn.pn.pn.pn, %612 ]
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %16) #8
  br label %682

682:                                              ; preds = %681, %207
  %.pn185.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn185.pn.pn.pn.pn.pn, %681 ], [ %208, %207 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %15) #8
  br label %683

683:                                              ; preds = %682, %205
  %.pn185.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn185.pn.pn.pn.pn.pn.pn, %682 ], [ %206, %205 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %15) #8
  br label %684

684:                                              ; preds = %683, %203
  %.pn185.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn185.pn.pn.pn.pn.pn.pn.pn, %683 ], [ %204, %203 ]
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %14) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_39EvalPointELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %13) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13) #8
  br label %685

685:                                              ; preds = %684, %161, %151, %150, %141
  %.pn195.pn = phi { ptr, i32 } [ %.pn195, %161 ], [ %.pn185.pn.pn.pn.pn.pn.pn.pn.pn, %684 ], [ %152, %151 ], [ %.pn.pn, %150 ], [ %142, %141 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #8
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_38MeshBaseELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %4) #8
  br label %686

686:                                              ; preds = %685, %139
  %.pn195.pn.pn = phi { ptr, i32 } [ %.pn195.pn, %685 ], [ %140, %139 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #8
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_311BarrierBaseELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #8
  br label %687

687:                                              ; preds = %137, %686, %108
  %.pn195.pn.pn.pn.pn = phi { ptr, i32 } [ %109, %108 ], [ %.pn195.pn.pn, %686 ], [ %138, %137 ]
  call void @_ZNSt12__shared_ptrIN9NOMAD_4_316EvaluatorControlELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %2) #8
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) #8
  resume { ptr, i32 } %.pn195.pn.pn.pn.pn
}

; Function Attrs: mustprogress nounwind uwtable
declare dso_local void @_ZN9NOMAD_4_312EvcInterface19getEvaluatorControlEv(ptr dead_on_unwind noalias writable sret(%"class.std::shared_ptr.14") align 8) local_unnamed_addr #1 align 2

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

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

declare noundef i32 @_ZNK9NOMAD_4_316EvaluatorControl18getCurrentEvalTypeEi(ptr noundef nonnull align 8 dereferenceable(352), i32 noundef) local_unnamed_addr #4

declare noundef nonnull align 4 dereferenceable(4) ptr @_ZNK9NOMAD_4_316EvaluatorControl14getComputeTypeEi(ptr noundef nonnull align 8 dereferenceable(352), i32 noundef) local_unnamed_addr #4

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), ptr noundef) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef, ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #5

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

declare void @_ZNK9NOMAD_4_34Step14AddOutputDebugERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

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

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

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

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

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

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

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

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

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

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

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

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

declare noundef i32 @_ZN9NOMAD_4_318ComputeSuccessTypeclESt10shared_ptrINS_9EvalPointEES3_RKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, ptr noundef, ptr noundef nonnull align 8 dereferenceable(17)) local_unnamed_addr #4

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

declare void @_ZN9NOMAD_4_36DoubleC1ERKd(ptr noundef nonnull align 8 dereferenceable(17), ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #4

; Function Attrs: nounwind
declare void @_ZN9NOMAD_4_36DoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(17)) unnamed_addr #6

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

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

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

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

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

declare void @_ZN9NOMAD_4_39EvalPoint12setPointFromESt10shared_ptrIS0_ERKNS_5PointE(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef, ptr noundef nonnull align 8 dereferenceable(24)) local_unnamed_addr #4

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

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

declare noundef nonnull align 8 dereferenceable(24) ptr @_ZN9NOMAD_4_317SubproblemManager19getSubFixedVariableEPKNS_4StepE(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef) local_unnamed_addr #4

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

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

declare void @_ZNK9NOMAD_4_39EvalPoint7displayB5cxx11ERKNS_13ArrayOfDoubleERKi(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(160), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 4 dereferenceable(4)) local_unnamed_addr #4

declare void @_ZN9NOMAD_4_36DoubleC1Ev(ptr noundef nonnull align 8 dereferenceable(17)) unnamed_addr #4

declare void @_ZN9NOMAD_4_313ArrayOfDoubleC1EmRKNS_6DoubleE(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef, ptr noundef nonnull align 8 dereferenceable(17)) unnamed_addr #4

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

; Function Attrs: nounwind
declare void @_ZN9NOMAD_4_313ArrayOfDoubleD1Ev(ptr noundef nonnull align 8 dereferenceable(24)) unnamed_addr #6

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

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

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

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

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

declare void @_ZN9NOMAD_4_37enumStrB5cxx11ENS_11SuccessTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, i32 noundef) local_unnamed_addr #4

declare void @_ZNK9NOMAD_4_39EvalPoint10displayAllB5cxx11ENS_11ComputeTypeE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(160), i32 noundef) local_unnamed_addr #4

declare void @_ZNK9NOMAD_4_34Step16AddOutputWarningERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(140), ptr noundef nonnull align 8 dereferenceable(32)) local_unnamed_addr #4

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

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

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

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

declare void @_ZNK9NOMAD_4_34Step13AddOutputInfoERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_11OutputLevelE(ptr noundef nonnull align 8 dereferenceable(140), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) local_unnamed_addr #4

declare void @_ZN9NOMAD_4_316EvaluatorControl24setLastSuccessfulFeasDirERKSt10shared_ptrINS_9DirectionEE(ptr noundef nonnull align 8 dereferenceable(352), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4

declare void @_ZN9NOMAD_4_316EvaluatorControl23setLastSuccessfulInfDirERKSt10shared_ptrINS_9DirectionEE(ptr noundef nonnull align 8 dereferenceable(352), ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #4

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

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

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

declare void @_ZNK9NOMAD_4_313ArrayOfDouble7displayERKS0_RKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(24), ptr noundef nonnull align 8 dereferenceable(32)) unnamed_addr #4

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

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

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

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.smax.i32(i32, i32) #7

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 = { 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 #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #8 = { 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 = !{!"_ZTSN9NOMAD_4_311ComputeTypeE", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"vtable pointer", !8, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_ZTSN9NOMAD_4_311OutputLevelE", !7, i64 0}
!13 = !{!14, !14, i64 0}
!14 = !{!"bool", !7, i64 0}
!15 = !{i8 0, i8 2}
!16 = !{}
!17 = !{!18, !18, i64 0}
!18 = !{!"_ZTSN9NOMAD_4_311SuccessTypeE", !7, i64 0}


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