; LLVM IR from gem5/gem5 :: ext/drampower/src (CmdScheduler)

; 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.Data::cmdScheduler::physicalAddr" = type { i64, i64, i64, i64 }
%"class.std::vector.24" = type { %"struct.std::_Vector_base.25" }
%"struct.std::_Vector_base.25" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.26" = type { i8 }
%"class.std::vector.29" = type { %"struct.std::_Vector_base.30" }
%"struct.std::_Vector_base.30" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.31" = type { i8 }
%"class.std::vector.34" = type { %"struct.std::_Bvector_base" }
%"struct.std::_Bvector_base" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" = type { %"struct.std::_Bit_iterator", %"struct.std::_Bit_iterator", ptr }
%"struct.std::_Bit_iterator" = type { %"struct.std::_Bit_iterator_base.base", [4 x i8] }
%"struct.std::_Bit_iterator_base.base" = type <{ ptr, i32 }>
%"class.std::allocator.35" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.19" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"struct.std::_Bit_reference" = type { ptr, i64 }
%"class.__gnu_cxx::__normal_iterator.38" = type { ptr }
%"class.Data::cmdScheduler::trans" = type { i64, i64, i64 }
%"class.__gnu_cxx::__normal_iterator.39" = type { ptr }
%"struct.Data::cmdScheduler::commandItem::commandItemSorter" = type { i8 }
%"class.Data::cmdScheduler" = type { %"class.std::vector", %"class.Data::cmdScheduler::commandItem", %"class.Data::cmdScheduler::commandItem", %"class.Data::cmdScheduler::commandItem", %"class.std::vector.3", %"class.std::vector.3", %"class.std::vector.8", %"class.std::vector.3", %"class.std::vector.3", i32, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i8, i64, %"class.std::basic_ofstream" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<Data::cmdScheduler::trans, std::allocator<Data::cmdScheduler::trans>>::_Vector_impl" }
%"struct.std::_Vector_base<Data::cmdScheduler::trans, std::allocator<Data::cmdScheduler::trans>>::_Vector_impl" = type { %"struct.std::_Vector_base<Data::cmdScheduler::trans, std::allocator<Data::cmdScheduler::trans>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Data::cmdScheduler::trans, std::allocator<Data::cmdScheduler::trans>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.Data::cmdScheduler::commandItem" = type { i64, i64, i64, %"class.std::__cxx11::basic_string", %"class.Data::cmdScheduler::physicalAddr" }
%"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.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<std::vector<Data::cmdScheduler::commandItem>, std::allocator<std::vector<Data::cmdScheduler::commandItem>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::vector<Data::cmdScheduler::commandItem>, std::allocator<std::vector<Data::cmdScheduler::commandItem>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::vector<Data::cmdScheduler::commandItem>, std::allocator<std::vector<Data::cmdScheduler::commandItem>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::vector<Data::cmdScheduler::commandItem>, std::allocator<std::vector<Data::cmdScheduler::commandItem>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.3" = type { %"struct.std::_Vector_base.4" }
%"struct.std::_Vector_base.4" = type { %"struct.std::_Vector_base<Data::cmdScheduler::commandItem, std::allocator<Data::cmdScheduler::commandItem>>::_Vector_impl" }
%"struct.std::_Vector_base<Data::cmdScheduler::commandItem, std::allocator<Data::cmdScheduler::commandItem>>::_Vector_impl" = type { %"struct.std::_Vector_base<Data::cmdScheduler::commandItem, std::allocator<Data::cmdScheduler::commandItem>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Data::cmdScheduler::commandItem, std::allocator<Data::cmdScheduler::commandItem>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::basic_ofstream" = type { %"class.std::basic_ostream.base", %"class.std::basic_filebuf", %"class.std::basic_ios" }
%"class.std::basic_ostream.base" = type { ptr }
%"class.std::basic_filebuf" = type { %"class.std::basic_streambuf", %union.pthread_mutex_t, %"class.std::__basic_file", i32, %struct.__mbstate_t, %struct.__mbstate_t, %struct.__mbstate_t, ptr, i64, i8, i8, i8, i8, ptr, ptr, i8, ptr, ptr, i64, ptr, ptr }
%"class.std::basic_streambuf" = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, %"class.std::locale" }
%"class.std::locale" = type { ptr }
%union.pthread_mutex_t = type { %struct.__pthread_mutex_s }
%struct.__pthread_mutex_s = type { i32, i32, i32, i32, i32, i16, i16, %struct.__pthread_internal_list }
%struct.__pthread_internal_list = type { ptr, ptr }
%"class.std::__basic_file" = type <{ ptr, i8, [7 x i8] }>
%struct.__mbstate_t = type { i32, %union.anon.13 }
%union.anon.13 = type { i32 }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.Data::MemorySpecification" = type { ptr, %"class.std::__cxx11::basic_string", %"class.Data::MemoryType", [4 x i8], %"class.Data::MemArchitectureSpec", %"class.Data::MemTimingSpec", %"class.Data::MemPowerSpec", %"class.Data::Parametrisable" }
%"class.Data::MemoryType" = type { i32 }
%"class.Data::MemArchitectureSpec" = type <{ ptr, i64, i64, i64, i64, i64, i64, i64, i64, i8, i8, i8, [5 x i8], %"class.Data::Parametrisable" }>
%"class.Data::MemTimingSpec" = type { ptr, double, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, i64, double, %"class.Data::Parametrisable" }
%"class.Data::MemPowerSpec" = type { ptr, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, %"class.Data::Parametrisable" }
%"class.Data::Parametrisable" = type { ptr, %"class.std::vector.14" }
%"class.std::vector.14" = type { %"struct.std::_Vector_base.15" }
%"struct.std::_Vector_base.15" = type { %"struct.std::_Vector_base<Data::Parameter, std::allocator<Data::Parameter>>::_Vector_impl" }
%"struct.std::_Vector_base<Data::Parameter, std::allocator<Data::Parameter>>::_Vector_impl" = type { %"struct.std::_Vector_base<Data::Parameter, std::allocator<Data::Parameter>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Data::Parameter, std::allocator<Data::Parameter>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@.str.1 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 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 uwtable
declare dso_local ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS2_S4_EES9_(ptr noundef nonnull align 8 dereferenceable(24), ptr, ptr) #1 align 2

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

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

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

; 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) #1 align 2

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

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4Data12cmdScheduler20analyticalSchedulingERKNS_19MemorySpecificationE(ptr noundef nonnull align 8 dereferenceable(1080) %0, ptr noundef nonnull align 8 dereferenceable(736) %1) #1 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca i64, align 8
  %6 = alloca i64, align 8
  %7 = alloca i64, align 8
  %8 = alloca i64, align 8
  %9 = alloca i8, align 1
  %10 = alloca %"class.Data::cmdScheduler::physicalAddr", align 8
  %11 = alloca i8, align 1
  %12 = alloca %"class.std::vector.24", align 8
  %13 = alloca i64, align 8
  %14 = alloca %"class.std::allocator.26", align 1
  %15 = alloca ptr, align 8
  %16 = alloca i32, align 4
  %17 = alloca %"class.std::vector.29", align 8
  %18 = alloca i64, align 8
  %19 = alloca %"class.std::allocator.31", align 1
  %20 = alloca %"class.std::vector.34", align 8
  %21 = alloca i8, align 1
  %22 = alloca %"class.std::allocator.35", align 1
  %23 = alloca i64, align 8
  %24 = alloca i64, align 8
  %25 = alloca i64, align 8
  %26 = alloca ptr, align 8
  %27 = alloca i64, align 8
  %28 = alloca i32, align 4
  %29 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %30 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %31 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %32 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %33 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %34 = alloca ptr, align 8
  %35 = alloca %"struct.std::_Bit_iterator", align 8
  %36 = alloca { ptr, i32 }, align 8
  %37 = alloca %"struct.std::_Bit_iterator", align 8
  %38 = alloca { ptr, i32 }, align 8
  %39 = alloca %"struct.std::_Bit_reference", align 8
  %40 = alloca ptr, align 8
  %41 = alloca %"class.__gnu_cxx::__normal_iterator.38", align 8
  %42 = alloca %"class.__gnu_cxx::__normal_iterator.38", align 8
  %43 = alloca ptr, align 8
  %44 = alloca %"class.Data::cmdScheduler::physicalAddr", align 8
  %45 = alloca %"class.Data::cmdScheduler::trans", align 8
  %46 = alloca ptr, align 8
  %47 = alloca %"class.__gnu_cxx::__normal_iterator.39", align 8
  %48 = alloca %"class.__gnu_cxx::__normal_iterator.39", align 8
  %49 = alloca ptr, align 8
  %50 = alloca i64, align 8
  %51 = alloca i64, align 8
  %52 = alloca i64, align 8
  %53 = alloca i64, align 8
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca %"struct.std::_Bit_reference", align 8
  %58 = alloca i64, align 8
  %59 = alloca i64, align 8
  %60 = alloca i64, align 8
  %61 = alloca i64, align 8
  %62 = alloca i64, align 8
  %63 = alloca i64, align 8
  %64 = alloca i64, align 8
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca %"struct.std::_Bit_reference", align 8
  %68 = alloca i32, align 4
  %69 = alloca i64, align 8
  %70 = alloca i64, align 8
  %71 = alloca i32, align 4
  %72 = alloca i64, align 8
  %73 = alloca i64, align 8
  %74 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %75 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %76 = alloca %"struct.Data::cmdScheduler::commandItem::commandItemSorter", align 1
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %80 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %81 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %82 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %83 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %84 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %85 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %86 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %87 = alloca i32, align 4
  %88 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %89 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %90 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %91 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %92 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %93 = alloca i32, align 4
  %94 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %95 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %96 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %97 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %98 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !5
  %99 = load ptr, ptr %3, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #6
  store i64 -1, ptr %5, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %6) #6
  store i64 0, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #6
  store i64 0, ptr %7, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #6
  store i64 0, ptr %8, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #6
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #6
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #6
  store i8 0, ptr %11, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 24, ptr %12) #6
  %100 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 26
  %101 = load i64, ptr %100, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #6
  store i64 0, ptr %13, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #6
  call void @_ZNSaImEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #6
  invoke void @_ZNSt6vectorImSaImEEC2EmRKmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %101, ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %102 unwind label %118

102:                                              ; preds = %2
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #6
  call void @llvm.lifetime.start.p0(i64 24, ptr %17) #6
  %103 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 23
  %104 = load i64, ptr %103, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #6
  store i64 -1, ptr %18, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #6
  call void @_ZNSaIlEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  invoke void @_ZNSt6vectorIlSaIlEEC2EmRKlRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %104, ptr noundef nonnull align 8 dereferenceable(8) %18, ptr noundef nonnull align 1 dereferenceable(1) %19)
          to label %105 unwind label %122

105:                                              ; preds = %102
  call void @_ZNSt15__new_allocatorIlED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  call void @llvm.lifetime.start.p0(i64 40, ptr %20) #6
  %106 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 23
  %107 = load i64, ptr %106, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #6
  store i8 0, ptr %21, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 1, ptr %22) #6
  call void @_ZNSaIbEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #6
  invoke void @_ZNSt6vectorIbSaIbEEC2EmRKbRKS0_(ptr noundef nonnull align 8 dereferenceable(40) %20, i64 noundef %107, ptr noundef nonnull align 1 dereferenceable(1) %21, ptr noundef nonnull align 1 dereferenceable(1) %22)
          to label %108 unwind label %126

108:                                              ; preds = %105
  call void @_ZNSt15__new_allocatorIbED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #6
  store i64 0, ptr %23, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #6
  store i64 0, ptr %24, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #6
  store i64 0, ptr %25, align 8, !tbaa !9
  %109 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 15
  store i64 0, ptr %109, align 8, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #6
  %110 = load ptr, ptr %4, align 8, !tbaa !5
  %111 = getelementptr inbounds %"class.Data::MemorySpecification", ptr %110, i32 0, i32 5
  store ptr %111, ptr %26, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #6
  store i64 0, ptr %27, align 8, !tbaa !9
  br label %112

112:                                              ; preds = %1187, %108
  %113 = load i64, ptr %27, align 8, !tbaa !9
  %114 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 0
  %115 = call noundef i64 @_ZNKSt6vectorIN4Data12cmdScheduler5transESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %114) #6
  %116 = icmp ult i64 %113, %115
  br i1 %116, label %130, label %117

117:                                              ; preds = %112
  store i32 2, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #6
  br label %1192

118:                                              ; preds = %2
  %119 = landingpad { ptr, i32 }
          cleanup
  %120 = extractvalue { ptr, i32 } %119, 0
  store ptr %120, ptr %15, align 8
  %121 = extractvalue { ptr, i32 } %119, 1
  store i32 %121, ptr %16, align 4
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #6
  br label %1269

122:                                              ; preds = %102
  %123 = landingpad { ptr, i32 }
          cleanup
  %124 = extractvalue { ptr, i32 } %123, 0
  store ptr %124, ptr %15, align 8
  %125 = extractvalue { ptr, i32 } %123, 1
  store i32 %125, ptr %16, align 4
  call void @_ZNSt15__new_allocatorIlED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  br label %1268

126:                                              ; preds = %105
  %127 = landingpad { ptr, i32 }
          cleanup
  %128 = extractvalue { ptr, i32 } %127, 0
  store ptr %128, ptr %15, align 8
  %129 = extractvalue { ptr, i32 } %127, 1
  store i32 %129, ptr %16, align 4
  call void @_ZNSt15__new_allocatorIbED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #6
  br label %1267

130:                                              ; preds = %112
  %131 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 7
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #6
  %132 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 7
  %133 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %132) #6
  %134 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %30, i32 0, i32 0
  store ptr %133, ptr %134, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN4Data12cmdScheduler11commandItemESt6vectorIS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S8_EE(ptr noundef nonnull align 8 dereferenceable(8) %29, ptr noundef nonnull align 8 dereferenceable(8) %30) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #6
  %135 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 7
  %136 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %135) #6
  %137 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %32, i32 0, i32 0
  store ptr %136, ptr %137, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN4Data12cmdScheduler11commandItemESt6vectorIS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S8_EE(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %32) #6
  %138 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %29, i32 0, i32 0
  %139 = load ptr, ptr %138, align 8
  %140 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %31, i32 0, i32 0
  %141 = load ptr, ptr %140, align 8
  %142 = invoke ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS2_S4_EES9_(ptr noundef nonnull align 8 dereferenceable(24) %131, ptr %139, ptr %141)
          to label %143 unwind label %153

143:                                              ; preds = %130
  %144 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %33, i32 0, i32 0
  store ptr %142, ptr %144, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #6
  store ptr %20, ptr %34, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 16, ptr %35) #6
  %145 = load ptr, ptr %34, align 8, !tbaa !5
  %146 = call { ptr, i32 } @_ZNSt6vectorIbSaIbEE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %145) #6
  store { ptr, i32 } %146, ptr %36, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %35, ptr align 8 %36, i64 12, i1 false)
  call void @llvm.lifetime.start.p0(i64 16, ptr %37) #6
  %147 = load ptr, ptr %34, align 8, !tbaa !5
  %148 = call { ptr, i32 } @_ZNSt6vectorIbSaIbEE3endEv(ptr noundef nonnull align 8 dereferenceable(40) %147) #6
  store { ptr, i32 } %148, ptr %38, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %37, ptr align 8 %38, i64 12, i1 false)
  br label %149

149:                                              ; preds = %171, %143
  %150 = invoke noundef zeroext i1 @_ZStneRKSt18_Bit_iterator_baseS1_(ptr noundef nonnull align 8 dereferenceable(12) %35, ptr noundef nonnull align 8 dereferenceable(12) %37)
          to label %151 unwind label %157

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

152:                                              ; preds = %151
  store i32 5, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #6
  br label %177

153:                                              ; preds = %130
  %154 = landingpad { ptr, i32 }
          cleanup
  %155 = extractvalue { ptr, i32 } %154, 0
  store ptr %155, ptr %15, align 8
  %156 = extractvalue { ptr, i32 } %154, 1
  store i32 %156, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #6
  br label %1191

157:                                              ; preds = %169, %149
  %158 = landingpad { ptr, i32 }
          cleanup
  %159 = extractvalue { ptr, i32 } %158, 0
  store ptr %159, ptr %15, align 8
  %160 = extractvalue { ptr, i32 } %158, 1
  store i32 %160, ptr %16, align 4
  br label %176

161:                                              ; preds = %151
  call void @llvm.lifetime.start.p0(i64 16, ptr %39) #6
  %162 = invoke { ptr, i64 } @_ZNKSt13_Bit_iteratordeEv(ptr noundef nonnull align 8 dereferenceable(12) %35)
          to label %163 unwind label %172

163:                                              ; preds = %161
  %164 = getelementptr inbounds { ptr, i64 }, ptr %39, i32 0, i32 0
  %165 = extractvalue { ptr, i64 } %162, 0
  store ptr %165, ptr %164, align 8
  %166 = getelementptr inbounds { ptr, i64 }, ptr %39, i32 0, i32 1
  %167 = extractvalue { ptr, i64 } %162, 1
  store i64 %167, ptr %166, align 8
  %168 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %39, i1 noundef zeroext false) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %39) #6
  br label %169

169:                                              ; preds = %163
  %170 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNSt13_Bit_iteratorppEv(ptr noundef nonnull align 8 dereferenceable(12) %35)
          to label %171 unwind label %157

171:                                              ; preds = %169
  br label %149

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

176:                                              ; preds = %172, %157
  call void @llvm.lifetime.end.p0(i64 16, ptr %37) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %35) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #6
  br label %1191

177:                                              ; preds = %152
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #6
  store ptr %17, ptr %40, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #6
  %178 = load ptr, ptr %40, align 8, !tbaa !5
  %179 = call ptr @_ZNSt6vectorIlSaIlEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %178) #6
  %180 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.38", ptr %41, i32 0, i32 0
  store ptr %179, ptr %180, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #6
  %181 = load ptr, ptr %40, align 8, !tbaa !5
  %182 = call ptr @_ZNSt6vectorIlSaIlEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %181) #6
  %183 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.38", ptr %42, i32 0, i32 0
  store ptr %182, ptr %183, align 8
  br label %184

184:                                              ; preds = %190, %177
  %185 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPlSt6vectorIlSaIlEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %41, ptr noundef nonnull align 8 dereferenceable(8) %42) #6
  br i1 %185, label %187, label %186

186:                                              ; preds = %184
  store i32 7, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #6
  br label %192

187:                                              ; preds = %184
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #6
  %188 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPlSt6vectorIlSaIlEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %41) #6
  store ptr %188, ptr %43, align 8, !tbaa !5
  %189 = load ptr, ptr %43, align 8, !tbaa !5
  store i64 -1, ptr %189, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #6
  br label %190

190:                                              ; preds = %187
  %191 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPlSt6vectorIlSaIlEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %41) #6
  br label %184

192:                                              ; preds = %186
  %193 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 27
  store i8 0, ptr %193, align 8, !tbaa !42
  %194 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 0
  %195 = load i64, ptr %27, align 8, !tbaa !9
  %196 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN4Data12cmdScheduler5transESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %194, i64 noundef %195) #6
  %197 = getelementptr inbounds %"class.Data::cmdScheduler::trans", ptr %196, i32 0, i32 1
  %198 = load i64, ptr %197, align 8, !tbaa !43
  store i64 %198, ptr %6, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 32, ptr %44) #6
  %199 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 0
  %200 = load i64, ptr %27, align 8, !tbaa !9
  %201 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN4Data12cmdScheduler5transESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %199, i64 noundef %200) #6
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %45, ptr align 8 %201, i64 24, i1 false), !tbaa.struct !45
  %202 = load ptr, ptr %4, align 8, !tbaa !5
  invoke void @_ZN4Data12cmdScheduler9memoryMapENS0_5transERKNS_19MemorySpecificationE(ptr dead_on_unwind writable sret(%"class.Data::cmdScheduler::physicalAddr") align 8 %44, ptr noundef nonnull align 8 dereferenceable(1080) %99, ptr noundef byval(%"class.Data::cmdScheduler::trans") align 8 %45, ptr noundef nonnull align 8 dereferenceable(736) %202)
          to label %203 unwind label %213

203:                                              ; preds = %192
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %10, ptr align 8 %44, i64 32, i1 false), !tbaa.struct !46
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #6
  store ptr %12, ptr %46, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #6
  %204 = load ptr, ptr %46, align 8, !tbaa !5
  %205 = call ptr @_ZNSt6vectorImSaImEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %204) #6
  %206 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.39", ptr %47, i32 0, i32 0
  store ptr %205, ptr %206, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #6
  %207 = load ptr, ptr %46, align 8, !tbaa !5
  %208 = call ptr @_ZNSt6vectorImSaImEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %207) #6
  %209 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.39", ptr %48, i32 0, i32 0
  store ptr %208, ptr %209, align 8
  br label %210

210:                                              ; preds = %222, %203
  %211 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPmSt6vectorImSaImEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %48) #6
  br i1 %211, label %217, label %212

212:                                              ; preds = %210
  store i32 9, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #6
  br label %224

213:                                              ; preds = %192
  %214 = landingpad { ptr, i32 }
          cleanup
  %215 = extractvalue { ptr, i32 } %214, 0
  store ptr %215, ptr %15, align 8
  %216 = extractvalue { ptr, i32 } %214, 1
  store i32 %216, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 32, ptr %44) #6
  br label %1191

217:                                              ; preds = %210
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #6
  %218 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %47) #6
  store ptr %218, ptr %49, align 8, !tbaa !5
  %219 = getelementptr inbounds %"class.Data::cmdScheduler::physicalAddr", ptr %10, i32 0, i32 1
  %220 = load i64, ptr %219, align 8, !tbaa !47
  %221 = load ptr, ptr %49, align 8, !tbaa !5
  store i64 %220, ptr %221, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #6
  br label %222

222:                                              ; preds = %217
  %223 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %47) #6
  br label %210

224:                                              ; preds = %212
  %225 = getelementptr inbounds %"class.Data::cmdScheduler::physicalAddr", ptr %10, i32 0, i32 2
  %226 = load i64, ptr %225, align 8, !tbaa !48
  store i64 %226, ptr %7, align 8, !tbaa !9
  %227 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 2
  %228 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %227, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #6
  %229 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 5
  %230 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 2
  %231 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %230, i32 0, i32 1
  %232 = load i64, ptr %231, align 8, !tbaa !49
  %233 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %229, i64 noundef %232) #6
  %234 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %233, i32 0, i32 2
  %235 = load i64, ptr %234, align 8, !tbaa !50
  %236 = load ptr, ptr %26, align 8, !tbaa !5
  %237 = getelementptr inbounds %"class.Data::MemTimingSpec", ptr %236, i32 0, i32 17
  %238 = load i64, ptr %237, align 8, !tbaa !51
  %239 = trunc i64 %238 to i32
  %240 = sext i32 %239 to i64
  %241 = add nsw i64 %235, %240
  store i64 %241, ptr %50, align 8, !tbaa !9
  %242 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %228, ptr noundef nonnull align 8 dereferenceable(8) %50)
          to label %243 unwind label %253

243:                                              ; preds = %224
  %244 = load i64, ptr %242, align 8, !tbaa !9
  store i64 %244, ptr %24, align 8, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #6
  %245 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 14
  %246 = load i64, ptr %245, align 8, !tbaa !54
  %247 = icmp eq i64 %246, 2
  br i1 %247, label %248, label %261

248:                                              ; preds = %243
  %249 = load i64, ptr %24, align 8, !tbaa !9
  %250 = load i64, ptr %6, align 8, !tbaa !9
  %251 = load ptr, ptr %4, align 8, !tbaa !5
  invoke void @_ZN4Data12cmdScheduler12pdSchedulingEllRKNS_19MemorySpecificationE(ptr noundef nonnull align 8 dereferenceable(1080) %99, i64 noundef %249, i64 noundef %250, ptr noundef nonnull align 8 dereferenceable(736) %251)
          to label %252 unwind label %257

252:                                              ; preds = %248
  br label %274

253:                                              ; preds = %224
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %15, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #6
  br label %1191

257:                                              ; preds = %269, %265, %248
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %15, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %16, align 4
  br label %1191

261:                                              ; preds = %243
  %262 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 14
  %263 = load i64, ptr %262, align 8, !tbaa !54
  %264 = icmp eq i64 %263, 1
  br i1 %264, label %265, label %273

265:                                              ; preds = %261
  %266 = load i64, ptr %24, align 8, !tbaa !9
  %267 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 19
  %268 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %267)
          to label %269 unwind label %257

269:                                              ; preds = %265
  %270 = load i64, ptr %268, align 8, !tbaa !9
  %271 = load ptr, ptr %4, align 8, !tbaa !5
  invoke void @_ZN4Data12cmdScheduler12pdSchedulingEllRKNS_19MemorySpecificationE(ptr noundef nonnull align 8 dereferenceable(1080) %99, i64 noundef %266, i64 noundef %270, ptr noundef nonnull align 8 dereferenceable(736) %271)
          to label %272 unwind label %257

272:                                              ; preds = %269
  br label %273

273:                                              ; preds = %272, %261
  br label %274

274:                                              ; preds = %273, %252
  %275 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 19
  %276 = load i64, ptr %275, align 8, !tbaa !55
  store i64 %276, ptr %25, align 8, !tbaa !9
  %277 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 2
  %278 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %277, i32 0, i32 2
  %279 = load i64, ptr %278, align 8, !tbaa !56
  %280 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 19
  %281 = load i64, ptr %280, align 8, !tbaa !55
  %282 = icmp sge i64 %279, %281
  br i1 %282, label %288, label %283

283:                                              ; preds = %274
  %284 = load i64, ptr %6, align 8, !tbaa !9
  %285 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 19
  %286 = load i64, ptr %285, align 8, !tbaa !55
  %287 = icmp sge i64 %284, %286
  br i1 %287, label %288, label %395

288:                                              ; preds = %283, %274
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #6
  store i64 0, ptr %51, align 8, !tbaa !9
  br label %289

289:                                              ; preds = %390, %288
  %290 = load i64, ptr %51, align 8, !tbaa !9
  %291 = load i64, ptr %6, align 8, !tbaa !9
  %292 = load i64, ptr %25, align 8, !tbaa !9
  %293 = sub nsw i64 %291, %292
  %294 = icmp sgt i64 %293, 0
  br i1 %294, label %295, label %303

295:                                              ; preds = %289
  %296 = load i64, ptr %6, align 8, !tbaa !9
  %297 = load i64, ptr %25, align 8, !tbaa !9
  %298 = sub nsw i64 %296, %297
  %299 = load ptr, ptr %26, align 8, !tbaa !5
  %300 = getelementptr inbounds %"class.Data::MemTimingSpec", ptr %299, i32 0, i32 15
  %301 = load i64, ptr %300, align 8, !tbaa !57
  %302 = sdiv i64 %298, %301
  br label %304

303:                                              ; preds = %289
  br label %304

304:                                              ; preds = %303, %295
  %305 = phi i64 [ %302, %295 ], [ 0, %303 ]
  %306 = icmp sle i64 %290, %305
  br i1 %306, label %308, label %307

307:                                              ; preds = %304
  store i32 11, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #6
  br label %394

308:                                              ; preds = %304
  %309 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %310 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %309, i32 0, i32 1
  store i64 0, ptr %310, align 8, !tbaa !58
  %311 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %312 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %311, i32 0, i32 3
  %313 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %312, ptr noundef @.str.7)
          to label %314 unwind label %362

314:                                              ; preds = %308
  %315 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 2
  %316 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %315, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #6
  %317 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 5
  %318 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 2
  %319 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %318, i32 0, i32 1
  %320 = load i64, ptr %319, align 8, !tbaa !49
  %321 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %317, i64 noundef %320) #6
  %322 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %321, i32 0, i32 2
  %323 = load i64, ptr %322, align 8, !tbaa !50
  %324 = load ptr, ptr %26, align 8, !tbaa !5
  %325 = getelementptr inbounds %"class.Data::MemTimingSpec", ptr %324, i32 0, i32 17
  %326 = load i64, ptr %325, align 8, !tbaa !51
  %327 = add nsw i64 %323, %326
  store i64 %327, ptr %52, align 8, !tbaa !9
  %328 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %316, ptr noundef nonnull align 8 dereferenceable(8) %52)
          to label %329 unwind label %366

329:                                              ; preds = %314
  %330 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 19
  %331 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %328, ptr noundef nonnull align 8 dereferenceable(8) %330)
          to label %332 unwind label %366

332:                                              ; preds = %329
  %333 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 28
  %334 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %331, ptr noundef nonnull align 8 dereferenceable(8) %333)
          to label %335 unwind label %366

335:                                              ; preds = %332
  %336 = load i64, ptr %334, align 8, !tbaa !9
  %337 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %338 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %337, i32 0, i32 2
  store i64 %336, ptr %338, align 8, !tbaa !59
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #6
  %339 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 14
  %340 = load i64, ptr %339, align 8, !tbaa !54
  %341 = icmp eq i64 %340, 2
  br i1 %341, label %342, label %346

342:                                              ; preds = %335
  %343 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 15
  %344 = load i64, ptr %343, align 8, !tbaa !41
  %345 = icmp ne i64 %344, 0
  br i1 %345, label %346, label %350

346:                                              ; preds = %342, %335
  %347 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 14
  %348 = load i64, ptr %347, align 8, !tbaa !54
  %349 = icmp ne i64 %348, 2
  br i1 %349, label %350, label %370

350:                                              ; preds = %346, %342
  %351 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 7
  %352 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  invoke void @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %351, ptr noundef nonnull align 8 dereferenceable(88) %352)
          to label %353 unwind label %362

353:                                              ; preds = %350
  %354 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %355 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %354, i32 0, i32 2
  %356 = load i64, ptr %355, align 8, !tbaa !59
  %357 = load ptr, ptr %26, align 8, !tbaa !5
  %358 = getelementptr inbounds %"class.Data::MemTimingSpec", ptr %357, i32 0, i32 18
  %359 = load i64, ptr %358, align 8, !tbaa !60
  %360 = add nsw i64 %356, %359
  %361 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 28
  store i64 %360, ptr %361, align 8, !tbaa !61
  br label %370

362:                                              ; preds = %385, %381, %350, %308
  %363 = landingpad { ptr, i32 }
          cleanup
  %364 = extractvalue { ptr, i32 } %363, 0
  store ptr %364, ptr %15, align 8
  %365 = extractvalue { ptr, i32 } %363, 1
  store i32 %365, ptr %16, align 4
  br label %393

366:                                              ; preds = %332, %329, %314
  %367 = landingpad { ptr, i32 }
          cleanup
  %368 = extractvalue { ptr, i32 } %367, 0
  store ptr %368, ptr %15, align 8
  %369 = extractvalue { ptr, i32 } %367, 1
  store i32 %369, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #6
  br label %393

370:                                              ; preds = %353, %346
  %371 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 19
  %372 = load i64, ptr %371, align 8, !tbaa !55
  %373 = load ptr, ptr %26, align 8, !tbaa !5
  %374 = getelementptr inbounds %"class.Data::MemTimingSpec", ptr %373, i32 0, i32 15
  %375 = load i64, ptr %374, align 8, !tbaa !57
  %376 = add nsw i64 %372, %375
  %377 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 19
  store i64 %376, ptr %377, align 8, !tbaa !55
  %378 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 15
  %379 = load i64, ptr %378, align 8, !tbaa !41
  %380 = icmp ne i64 %379, 0
  br i1 %380, label %389, label %381

381:                                              ; preds = %370
  %382 = load i64, ptr %24, align 8, !tbaa !9
  %383 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 19
  %384 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %383)
          to label %385 unwind label %362

385:                                              ; preds = %381
  %386 = load i64, ptr %384, align 8, !tbaa !9
  %387 = load ptr, ptr %4, align 8, !tbaa !5
  invoke void @_ZN4Data12cmdScheduler12pdSchedulingEllRKNS_19MemorySpecificationE(ptr noundef nonnull align 8 dereferenceable(1080) %99, i64 noundef %382, i64 noundef %386, ptr noundef nonnull align 8 dereferenceable(736) %387)
          to label %388 unwind label %362

388:                                              ; preds = %385
  br label %389

389:                                              ; preds = %388, %370
  br label %390

390:                                              ; preds = %389
  %391 = load i64, ptr %51, align 8, !tbaa !9
  %392 = add nsw i64 %391, 1
  store i64 %392, ptr %51, align 8, !tbaa !9
  br label %289, !llvm.loop !62

393:                                              ; preds = %366, %362
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #6
  br label %1191

394:                                              ; preds = %307
  br label %395

395:                                              ; preds = %394, %283
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #6
  %396 = getelementptr inbounds %"class.Data::cmdScheduler::physicalAddr", ptr %10, i32 0, i32 1
  %397 = load i64, ptr %396, align 8, !tbaa !47
  store i64 %397, ptr %53, align 8, !tbaa !9
  %398 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 0
  %399 = load i64, ptr %27, align 8, !tbaa !9
  %400 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN4Data12cmdScheduler5transESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %398, i64 noundef %399) #6
  %401 = getelementptr inbounds %"class.Data::cmdScheduler::trans", ptr %400, i32 0, i32 0
  %402 = load i64, ptr %401, align 8, !tbaa !64
  store i64 %402, ptr %5, align 8, !tbaa !9
  %403 = load i64, ptr %5, align 8, !tbaa !9
  %404 = load ptr, ptr %4, align 8, !tbaa !5
  %405 = invoke noundef i64 @_ZN4Data12cmdScheduler7getRWTPElRKNS_19MemorySpecificationE(ptr noundef nonnull align 8 dereferenceable(1080) %99, i64 noundef %403, ptr noundef nonnull align 8 dereferenceable(736) %404)
          to label %406 unwind label %415

406:                                              ; preds = %395
  %407 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 21
  store i64 %405, ptr %407, align 8, !tbaa !65
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #6
  store i32 0, ptr %54, align 4, !tbaa !66
  br label %408

408:                                              ; preds = %1018, %406
  %409 = load i32, ptr %54, align 4, !tbaa !66
  %410 = sext i32 %409 to i64
  %411 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 10
  %412 = load i64, ptr %411, align 8, !tbaa !67
  %413 = icmp slt i64 %410, %412
  br i1 %413, label %419, label %414

414:                                              ; preds = %408
  store i32 14, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #6
  br label %1021

415:                                              ; preds = %1021, %395
  %416 = landingpad { ptr, i32 }
          cleanup
  %417 = extractvalue { ptr, i32 } %416, 0
  store ptr %417, ptr %15, align 8
  %418 = extractvalue { ptr, i32 } %416, 1
  store i32 %418, ptr %16, align 4
  br label %1190

419:                                              ; preds = %408
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #6
  store i32 0, ptr %55, align 4, !tbaa !66
  br label %420

420:                                              ; preds = %1013, %419
  %421 = load i32, ptr %55, align 4, !tbaa !66
  %422 = sext i32 %421 to i64
  %423 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 11
  %424 = load i64, ptr %423, align 8, !tbaa !68
  %425 = icmp slt i64 %422, %424
  br i1 %425, label %427, label %426

426:                                              ; preds = %420
  store i32 17, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #6
  br label %1017

427:                                              ; preds = %420
  %428 = load ptr, ptr %4, align 8, !tbaa !5
  %429 = getelementptr inbounds %"class.Data::MemorySpecification", ptr %428, i32 0, i32 2
  %430 = invoke noundef i32 @_ZNK4Data10MemoryTypecvNS0_12MemoryType_tEEv(ptr noundef nonnull align 4 dereferenceable(4) %429)
          to label %431 unwind label %436

431:                                              ; preds = %427
  %432 = icmp eq i32 %430, 2
  br i1 %432, label %433, label %440

433:                                              ; preds = %431
  %434 = getelementptr inbounds %"class.Data::cmdScheduler::physicalAddr", ptr %10, i32 0, i32 2
  %435 = load i64, ptr %434, align 8, !tbaa !48
  store i64 %435, ptr %7, align 8, !tbaa !9
  br label %440

436:                                              ; preds = %427
  %437 = landingpad { ptr, i32 }
          cleanup
  %438 = extractvalue { ptr, i32 } %437, 0
  store ptr %438, ptr %15, align 8
  %439 = extractvalue { ptr, i32 } %437, 1
  store i32 %439, ptr %16, align 4
  br label %1016

440:                                              ; preds = %433, %431
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #6
  store i32 0, ptr %56, align 4, !tbaa !66
  br label %441

441:                                              ; preds = %1008, %440
  %442 = load i32, ptr %56, align 4, !tbaa !66
  %443 = sext i32 %442 to i64
  %444 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 12
  %445 = load i64, ptr %444, align 8, !tbaa !69
  %446 = icmp slt i64 %443, %445
  br i1 %446, label %448, label %447

447:                                              ; preds = %441
  store i32 20, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #6
  br label %1012

448:                                              ; preds = %441
  store i8 0, ptr %11, align 1, !tbaa !11
  %449 = load ptr, ptr %4, align 8, !tbaa !5
  %450 = getelementptr inbounds %"class.Data::MemorySpecification", ptr %449, i32 0, i32 2
  %451 = invoke noundef i32 @_ZNK4Data10MemoryTypecvNS0_12MemoryType_tEEv(ptr noundef nonnull align 4 dereferenceable(4) %450)
          to label %452 unwind label %459

452:                                              ; preds = %448
  %453 = icmp eq i32 %451, 2
  br i1 %453, label %454, label %480

454:                                              ; preds = %452
  %455 = load i64, ptr %7, align 8, !tbaa !9
  %456 = load i64, ptr %8, align 8, !tbaa !9
  %457 = icmp ne i64 %455, %456
  br i1 %457, label %458, label %463

458:                                              ; preds = %454
  store i8 1, ptr %11, align 1, !tbaa !11
  br label %463

459:                                              ; preds = %932, %922, %915, %911, %905, %900, %806, %801, %748, %745, %665, %658, %569, %508, %489, %448
  %460 = landingpad { ptr, i32 }
          cleanup
  %461 = extractvalue { ptr, i32 } %460, 0
  store ptr %461, ptr %15, align 8
  %462 = extractvalue { ptr, i32 } %460, 1
  store i32 %462, ptr %16, align 4
  br label %1011

463:                                              ; preds = %458, %454
  %464 = getelementptr inbounds %"class.Data::cmdScheduler::physicalAddr", ptr %10, i32 0, i32 2
  %465 = load i64, ptr %464, align 8, !tbaa !48
  %466 = load i32, ptr %56, align 4, !tbaa !66
  %467 = sext i32 %466 to i64
  %468 = add i64 %465, %467
  store i64 %468, ptr %8, align 8, !tbaa !9
  %469 = load i64, ptr %8, align 8, !tbaa !9
  %470 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 23
  %471 = load i64, ptr %470, align 8, !tbaa !40
  %472 = mul i64 %469, %471
  %473 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 26
  %474 = load i64, ptr %473, align 8, !tbaa !13
  %475 = udiv i64 %472, %474
  %476 = load i64, ptr %8, align 8, !tbaa !9
  %477 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %476) #6
  %478 = load i64, ptr %477, align 8, !tbaa !9
  %479 = add i64 %475, %478
  store i64 %479, ptr %23, align 8, !tbaa !9
  br label %485

480:                                              ; preds = %452
  %481 = load i64, ptr %53, align 8, !tbaa !9
  %482 = load i32, ptr %54, align 4, !tbaa !66
  %483 = sext i32 %482 to i64
  %484 = add i64 %481, %483
  store i64 %484, ptr %23, align 8, !tbaa !9
  br label %485

485:                                              ; preds = %480, %463
  %486 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 27
  %487 = load i8, ptr %486, align 8, !tbaa !42, !range !70, !noundef !71
  %488 = trunc i8 %487 to i1
  br i1 %488, label %498, label %489

489:                                              ; preds = %485
  %490 = load i8, ptr %11, align 1, !tbaa !11, !range !70, !noundef !71
  %491 = trunc i8 %490 to i1
  %492 = load ptr, ptr %4, align 8, !tbaa !5
  %493 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 3
  %494 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %493, i32 0, i32 0
  %495 = load i64, ptr %494, align 8, !tbaa !72
  %496 = load i64, ptr %5, align 8, !tbaa !9
  invoke void @_ZN4Data12cmdScheduler20getTimingConstraintsEbRKNS_19MemorySpecificationEll(ptr noundef nonnull align 8 dereferenceable(1080) %99, i1 noundef zeroext %491, ptr noundef nonnull align 8 dereferenceable(736) %492, i64 noundef %495, i64 noundef %496)
          to label %497 unwind label %459

497:                                              ; preds = %489
  br label %498

498:                                              ; preds = %497, %485
  call void @llvm.lifetime.start.p0(i64 16, ptr %57) #6
  %499 = load i64, ptr %23, align 8, !tbaa !9
  %500 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %20, i64 noundef %499)
          to label %501 unwind label %622

501:                                              ; preds = %498
  %502 = getelementptr inbounds { ptr, i64 }, ptr %57, i32 0, i32 0
  %503 = extractvalue { ptr, i64 } %500, 0
  store ptr %503, ptr %502, align 8
  %504 = getelementptr inbounds { ptr, i64 }, ptr %57, i32 0, i32 1
  %505 = extractvalue { ptr, i64 } %500, 1
  store i64 %505, ptr %504, align 8
  %506 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %57) #6
  %507 = xor i1 %506, true
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #6
  br i1 %507, label %508, label %771

508:                                              ; preds = %501
  %509 = load i64, ptr %23, align 8, !tbaa !9
  %510 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %511 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %510, i32 0, i32 1
  store i64 %509, ptr %511, align 8, !tbaa !58
  %512 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %513 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %512, i32 0, i32 1
  %514 = load i64, ptr %513, align 8, !tbaa !58
  %515 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %516 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %515, i32 0, i32 4
  %517 = getelementptr inbounds %"class.Data::cmdScheduler::physicalAddr", ptr %516, i32 0, i32 1
  store i64 %514, ptr %517, align 8, !tbaa !73
  %518 = getelementptr inbounds %"class.Data::cmdScheduler::physicalAddr", ptr %10, i32 0, i32 0
  %519 = load i64, ptr %518, align 8, !tbaa !74
  %520 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %521 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %520, i32 0, i32 4
  %522 = getelementptr inbounds %"class.Data::cmdScheduler::physicalAddr", ptr %521, i32 0, i32 0
  store i64 %519, ptr %522, align 8, !tbaa !75
  %523 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %524 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %523, i32 0, i32 0
  store i64 2, ptr %524, align 8, !tbaa !76
  %525 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %526 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %525, i32 0, i32 3
  %527 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %526, ptr noundef @.str.3)
          to label %528 unwind label %459

528:                                              ; preds = %508
  %529 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 15
  store i64 0, ptr %529, align 8, !tbaa !41
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #6
  %530 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 4
  %531 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 22
  %532 = load i64, ptr %531, align 8, !tbaa !77
  %533 = sub nsw i64 %532, 1
  %534 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %530, i64 noundef %533) #6
  %535 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %534, i32 0, i32 2
  %536 = load i64, ptr %535, align 8, !tbaa !50
  %537 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 16
  %538 = load i64, ptr %537, align 8, !tbaa !78
  %539 = add nsw i64 %536, %538
  store i64 %539, ptr %58, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #6
  %540 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 5
  %541 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %542 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %541, i32 0, i32 1
  %543 = load i64, ptr %542, align 8, !tbaa !58
  %544 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %540, i64 noundef %543) #6
  %545 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %544, i32 0, i32 2
  %546 = load i64, ptr %545, align 8, !tbaa !50
  %547 = load ptr, ptr %26, align 8, !tbaa !5
  %548 = getelementptr inbounds %"class.Data::MemTimingSpec", ptr %547, i32 0, i32 17
  %549 = load i64, ptr %548, align 8, !tbaa !51
  %550 = trunc i64 %549 to i32
  %551 = sext i32 %550 to i64
  %552 = add nsw i64 %546, %551
  store i64 %552, ptr %59, align 8, !tbaa !9
  %553 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %58, ptr noundef nonnull align 8 dereferenceable(8) %59)
          to label %554 unwind label %626

554:                                              ; preds = %528
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #6
  %555 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 4
  %556 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 22
  %557 = load i64, ptr %556, align 8, !tbaa !77
  %558 = sub nsw i64 %557, 4
  %559 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %555, i64 noundef %558) #6
  %560 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %559, i32 0, i32 2
  %561 = load i64, ptr %560, align 8, !tbaa !50
  %562 = load ptr, ptr %26, align 8, !tbaa !5
  %563 = getelementptr inbounds %"class.Data::MemTimingSpec", ptr %562, i32 0, i32 10
  %564 = load i64, ptr %563, align 8, !tbaa !79
  %565 = trunc i64 %564 to i32
  %566 = sext i32 %565 to i64
  %567 = add nsw i64 %561, %566
  store i64 %567, ptr %60, align 8, !tbaa !9
  %568 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %553, ptr noundef nonnull align 8 dereferenceable(8) %60)
          to label %569 unwind label %630

569:                                              ; preds = %554
  %570 = load i64, ptr %568, align 8, !tbaa !9
  %571 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %572 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %571, i32 0, i32 2
  store i64 %570, ptr %572, align 8, !tbaa !59
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #6
  %573 = load ptr, ptr %4, align 8, !tbaa !5
  %574 = getelementptr inbounds %"class.Data::MemorySpecification", ptr %573, i32 0, i32 2
  %575 = invoke noundef i32 @_ZNK4Data10MemoryTypecvNS0_12MemoryType_tEEv(ptr noundef nonnull align 4 dereferenceable(4) %574)
          to label %576 unwind label %459

576:                                              ; preds = %569
  %577 = icmp eq i32 %575, 6
  br i1 %577, label %578, label %644

578:                                              ; preds = %576
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #6
  %579 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 4
  %580 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 22
  %581 = load i64, ptr %580, align 8, !tbaa !77
  %582 = sub nsw i64 %581, 1
  %583 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %579, i64 noundef %582) #6
  %584 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %583, i32 0, i32 2
  %585 = load i64, ptr %584, align 8, !tbaa !50
  %586 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 16
  %587 = load i64, ptr %586, align 8, !tbaa !78
  %588 = add nsw i64 %585, %587
  store i64 %588, ptr %61, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %62) #6
  %589 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 5
  %590 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %591 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %590, i32 0, i32 1
  %592 = load i64, ptr %591, align 8, !tbaa !58
  %593 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %589, i64 noundef %592) #6
  %594 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %593, i32 0, i32 2
  %595 = load i64, ptr %594, align 8, !tbaa !50
  %596 = load ptr, ptr %26, align 8, !tbaa !5
  %597 = getelementptr inbounds %"class.Data::MemTimingSpec", ptr %596, i32 0, i32 17
  %598 = load i64, ptr %597, align 8, !tbaa !51
  %599 = trunc i64 %598 to i32
  %600 = sext i32 %599 to i64
  %601 = add nsw i64 %595, %600
  store i64 %601, ptr %62, align 8, !tbaa !9
  %602 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %61, ptr noundef nonnull align 8 dereferenceable(8) %62)
          to label %603 unwind label %635

603:                                              ; preds = %578
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #6
  %604 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 4
  %605 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 22
  %606 = load i64, ptr %605, align 8, !tbaa !77
  %607 = sub nsw i64 %606, 2
  %608 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %604, i64 noundef %607) #6
  %609 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %608, i32 0, i32 2
  %610 = load i64, ptr %609, align 8, !tbaa !50
  %611 = load ptr, ptr %26, align 8, !tbaa !5
  %612 = getelementptr inbounds %"class.Data::MemTimingSpec", ptr %611, i32 0, i32 11
  %613 = load i64, ptr %612, align 8, !tbaa !80
  %614 = trunc i64 %613 to i32
  %615 = sext i32 %614 to i64
  %616 = add nsw i64 %610, %615
  store i64 %616, ptr %63, align 8, !tbaa !9
  %617 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %602, ptr noundef nonnull align 8 dereferenceable(8) %63)
          to label %618 unwind label %639

618:                                              ; preds = %603
  %619 = load i64, ptr %617, align 8, !tbaa !9
  %620 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %621 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %620, i32 0, i32 2
  store i64 %619, ptr %621, align 8, !tbaa !59
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #6
  br label %644

622:                                              ; preds = %498
  %623 = landingpad { ptr, i32 }
          cleanup
  %624 = extractvalue { ptr, i32 } %623, 0
  store ptr %624, ptr %15, align 8
  %625 = extractvalue { ptr, i32 } %623, 1
  store i32 %625, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %57) #6
  br label %1011

626:                                              ; preds = %528
  %627 = landingpad { ptr, i32 }
          cleanup
  %628 = extractvalue { ptr, i32 } %627, 0
  store ptr %628, ptr %15, align 8
  %629 = extractvalue { ptr, i32 } %627, 1
  store i32 %629, ptr %16, align 4
  br label %634

630:                                              ; preds = %554
  %631 = landingpad { ptr, i32 }
          cleanup
  %632 = extractvalue { ptr, i32 } %631, 0
  store ptr %632, ptr %15, align 8
  %633 = extractvalue { ptr, i32 } %631, 1
  store i32 %633, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #6
  br label %634

634:                                              ; preds = %630, %626
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #6
  br label %1011

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

639:                                              ; preds = %603
  %640 = landingpad { ptr, i32 }
          cleanup
  %641 = extractvalue { ptr, i32 } %640, 0
  store ptr %641, ptr %15, align 8
  %642 = extractvalue { ptr, i32 } %640, 1
  store i32 %642, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #6
  br label %643

643:                                              ; preds = %639, %635
  call void @llvm.lifetime.end.p0(i64 8, ptr %62) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #6
  br label %1011

644:                                              ; preds = %618, %576
  %645 = load i32, ptr %54, align 4, !tbaa !66
  %646 = icmp eq i32 %645, 0
  br i1 %646, label %647, label %681

647:                                              ; preds = %644
  %648 = load i32, ptr %56, align 4, !tbaa !66
  %649 = icmp eq i32 %648, 0
  br i1 %649, label %650, label %681

650:                                              ; preds = %647
  %651 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %652 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %651, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 8, ptr %64) #6
  %653 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 3
  %654 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %653, i32 0, i32 2
  %655 = load i64, ptr %654, align 8, !tbaa !81
  %656 = add nsw i64 %655, 1
  store i64 %656, ptr %64, align 8, !tbaa !9
  %657 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %652, ptr noundef nonnull align 8 dereferenceable(8) %64)
          to label %658 unwind label %677

658:                                              ; preds = %650
  %659 = load i64, ptr %657, align 8, !tbaa !9
  %660 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %661 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %660, i32 0, i32 2
  store i64 %659, ptr %661, align 8, !tbaa !59
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #6
  %662 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %663 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %662, i32 0, i32 2
  %664 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %663, ptr noundef nonnull align 8 dereferenceable(8) %6)
          to label %665 unwind label %459

665:                                              ; preds = %658
  %666 = load i64, ptr %664, align 8, !tbaa !9
  %667 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %668 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %667, i32 0, i32 2
  store i64 %666, ptr %668, align 8, !tbaa !59
  %669 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 28
  %670 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %671 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %670, i32 0, i32 2
  %672 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %669, ptr noundef nonnull align 8 dereferenceable(8) %671)
          to label %673 unwind label %459

673:                                              ; preds = %665
  %674 = load i64, ptr %672, align 8, !tbaa !9
  %675 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %676 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %675, i32 0, i32 2
  store i64 %674, ptr %676, align 8, !tbaa !59
  br label %681

677:                                              ; preds = %650
  %678 = landingpad { ptr, i32 }
          cleanup
  %679 = extractvalue { ptr, i32 } %678, 0
  store ptr %679, ptr %15, align 8
  %680 = extractvalue { ptr, i32 } %678, 1
  store i32 %680, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %64) #6
  br label %1011

681:                                              ; preds = %673, %647, %644
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #6
  store i32 1, ptr %65, align 4, !tbaa !66
  br label %682

682:                                              ; preds = %741, %681
  %683 = load i32, ptr %65, align 4, !tbaa !66
  %684 = sext i32 %683 to i64
  %685 = load i32, ptr %54, align 4, !tbaa !66
  %686 = sext i32 %685 to i64
  %687 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 12
  %688 = load i64, ptr %687, align 8, !tbaa !69
  %689 = mul nsw i64 %686, %688
  %690 = load i32, ptr %56, align 4, !tbaa !66
  %691 = sext i32 %690 to i64
  %692 = add nsw i64 %689, %691
  %693 = icmp sle i64 %684, %692
  br i1 %693, label %695, label %694

694:                                              ; preds = %682
  store i32 23, ptr %28, align 4
  br label %744

695:                                              ; preds = %682
  store i8 0, ptr %9, align 1, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #6
  store i32 0, ptr %66, align 4, !tbaa !66
  br label %696

696:                                              ; preds = %732, %695
  %697 = load i32, ptr %66, align 4, !tbaa !66
  %698 = zext i32 %697 to i64
  %699 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 6
  %700 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 22
  %701 = load i64, ptr %700, align 8, !tbaa !77
  %702 = load i32, ptr %65, align 4, !tbaa !66
  %703 = sext i32 %702 to i64
  %704 = sub nsw i64 %701, %703
  %705 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %699, i64 noundef %704) #6
  %706 = call noundef i64 @_ZNKSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %705) #6
  %707 = icmp ult i64 %698, %706
  br i1 %707, label %709, label %708

708:                                              ; preds = %696
  store i32 26, ptr %28, align 4
  br label %735

709:                                              ; preds = %696
  %710 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 6
  %711 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 22
  %712 = load i64, ptr %711, align 8, !tbaa !77
  %713 = load i32, ptr %65, align 4, !tbaa !66
  %714 = sext i32 %713 to i64
  %715 = sub nsw i64 %712, %714
  %716 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %710, i64 noundef %715) #6
  %717 = load i32, ptr %66, align 4, !tbaa !66
  %718 = zext i32 %717 to i64
  %719 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %716, i64 noundef %718) #6
  %720 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %719, i32 0, i32 2
  %721 = load i64, ptr %720, align 8, !tbaa !50
  %722 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %723 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %722, i32 0, i32 2
  %724 = load i64, ptr %723, align 8, !tbaa !59
  %725 = icmp eq i64 %721, %724
  br i1 %725, label %726, label %731

726:                                              ; preds = %709
  %727 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %728 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %727, i32 0, i32 2
  %729 = load i64, ptr %728, align 8, !tbaa !59
  %730 = add nsw i64 %729, 1
  store i64 %730, ptr %728, align 8, !tbaa !59
  store i8 1, ptr %9, align 1, !tbaa !11
  store i32 26, ptr %28, align 4
  br label %735

731:                                              ; preds = %709
  br label %732

732:                                              ; preds = %731
  %733 = load i32, ptr %66, align 4, !tbaa !66
  %734 = add i32 %733, 1
  store i32 %734, ptr %66, align 4, !tbaa !66
  br label %696, !llvm.loop !82

735:                                              ; preds = %726, %708
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #6
  br label %736

736:                                              ; preds = %735
  %737 = load i8, ptr %9, align 1, !tbaa !11, !range !70, !noundef !71
  %738 = trunc i8 %737 to i1
  br i1 %738, label %739, label %740

739:                                              ; preds = %736
  store i32 23, ptr %28, align 4
  br label %744

740:                                              ; preds = %736
  br label %741

741:                                              ; preds = %740
  %742 = load i32, ptr %65, align 4, !tbaa !66
  %743 = add nsw i32 %742, 1
  store i32 %743, ptr %65, align 4, !tbaa !66
  br label %682, !llvm.loop !83

744:                                              ; preds = %739, %694
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #6
  br label %745

745:                                              ; preds = %744
  %746 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 4
  %747 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  invoke void @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %746, ptr noundef nonnull align 8 dereferenceable(88) %747)
          to label %748 unwind label %459

748:                                              ; preds = %745
  %749 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 7
  %750 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  invoke void @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %749, ptr noundef nonnull align 8 dereferenceable(88) %750)
          to label %751 unwind label %459

751:                                              ; preds = %748
  call void @llvm.lifetime.start.p0(i64 16, ptr %67) #6
  %752 = load i64, ptr %23, align 8, !tbaa !9
  %753 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %20, i64 noundef %752)
          to label %754 unwind label %767

754:                                              ; preds = %751
  %755 = getelementptr inbounds { ptr, i64 }, ptr %67, i32 0, i32 0
  %756 = extractvalue { ptr, i64 } %753, 0
  store ptr %756, ptr %755, align 8
  %757 = getelementptr inbounds { ptr, i64 }, ptr %67, i32 0, i32 1
  %758 = extractvalue { ptr, i64 } %753, 1
  store i64 %758, ptr %757, align 8
  %759 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %67, i1 noundef zeroext true) #6
  call void @llvm.lifetime.end.p0(i64 16, ptr %67) #6
  %760 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 22
  %761 = load i64, ptr %760, align 8, !tbaa !77
  %762 = load i64, ptr %23, align 8, !tbaa !9
  %763 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %762) #6
  store i64 %761, ptr %763, align 8, !tbaa !9
  %764 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 22
  %765 = load i64, ptr %764, align 8, !tbaa !77
  %766 = add nsw i64 %765, 1
  store i64 %766, ptr %764, align 8, !tbaa !77
  br label %771

767:                                              ; preds = %751
  %768 = landingpad { ptr, i32 }
          cleanup
  %769 = extractvalue { ptr, i32 } %768, 0
  store ptr %769, ptr %15, align 8
  %770 = extractvalue { ptr, i32 } %768, 1
  store i32 %770, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 16, ptr %67) #6
  br label %1011

771:                                              ; preds = %754, %501
  %772 = load i64, ptr %23, align 8, !tbaa !9
  %773 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %774 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %773, i32 0, i32 1
  store i64 %772, ptr %774, align 8, !tbaa !58
  %775 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %776 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %775, i32 0, i32 1
  %777 = load i64, ptr %776, align 8, !tbaa !58
  %778 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %779 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %778, i32 0, i32 4
  %780 = getelementptr inbounds %"class.Data::cmdScheduler::physicalAddr", ptr %779, i32 0, i32 1
  store i64 %777, ptr %780, align 8, !tbaa !73
  %781 = getelementptr inbounds %"class.Data::cmdScheduler::physicalAddr", ptr %10, i32 0, i32 0
  %782 = load i64, ptr %781, align 8, !tbaa !74
  %783 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %784 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %783, i32 0, i32 4
  %785 = getelementptr inbounds %"class.Data::cmdScheduler::physicalAddr", ptr %784, i32 0, i32 0
  store i64 %782, ptr %785, align 8, !tbaa !75
  %786 = getelementptr inbounds %"class.Data::cmdScheduler::physicalAddr", ptr %10, i32 0, i32 3
  %787 = load i64, ptr %786, align 8, !tbaa !84
  %788 = load i32, ptr %55, align 4, !tbaa !66
  %789 = sext i32 %788 to i64
  %790 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 25
  %791 = load i64, ptr %790, align 8, !tbaa !85
  %792 = mul nsw i64 %789, %791
  %793 = add i64 %787, %792
  %794 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %795 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %794, i32 0, i32 4
  %796 = getelementptr inbounds %"class.Data::cmdScheduler::physicalAddr", ptr %795, i32 0, i32 3
  store i64 %793, ptr %796, align 8, !tbaa !86
  %797 = load i64, ptr %5, align 8, !tbaa !9
  %798 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %799 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %798, i32 0, i32 0
  store i64 %797, ptr %799, align 8, !tbaa !76
  %800 = load i64, ptr %5, align 8, !tbaa !9
  switch i64 %800, label %811 [
    i64 0, label %801
    i64 1, label %806
  ]

801:                                              ; preds = %771
  %802 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %803 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %802, i32 0, i32 3
  %804 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %803, ptr noundef @.str.5)
          to label %805 unwind label %459

805:                                              ; preds = %801
  br label %811

806:                                              ; preds = %771
  %807 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %808 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %807, i32 0, i32 3
  %809 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %808, ptr noundef @.str.8)
          to label %810 unwind label %459

810:                                              ; preds = %806
  br label %811

811:                                              ; preds = %810, %805, %771
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #6
  %812 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 4
  %813 = call noundef i64 @_ZNKSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %812) #6
  %814 = sub i64 %813, 1
  %815 = trunc i64 %814 to i32
  store i32 %815, ptr %68, align 4, !tbaa !66
  br label %816

816:                                              ; preds = %856, %811
  %817 = load i32, ptr %68, align 4, !tbaa !66
  %818 = icmp sge i32 %817, 0
  br i1 %818, label %820, label %819

819:                                              ; preds = %816
  store i32 30, ptr %28, align 4
  br label %859

820:                                              ; preds = %816
  %821 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 4
  %822 = load i32, ptr %68, align 4, !tbaa !66
  %823 = sext i32 %822 to i64
  %824 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %821, i64 noundef %823) #6
  %825 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %824, i32 0, i32 1
  %826 = load i64, ptr %825, align 8, !tbaa !87
  %827 = load i64, ptr %23, align 8, !tbaa !9
  %828 = icmp eq i64 %826, %827
  br i1 %828, label %829, label %855

829:                                              ; preds = %820
  call void @llvm.lifetime.start.p0(i64 8, ptr %69) #6
  %830 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 3
  %831 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %830, i32 0, i32 2
  %832 = load i64, ptr %831, align 8, !tbaa !81
  %833 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 20
  %834 = load i64, ptr %833, align 8, !tbaa !88
  %835 = add nsw i64 %832, %834
  store i64 %835, ptr %69, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #6
  %836 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 4
  %837 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %836) #6
  %838 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %837, i32 0, i32 2
  %839 = load i64, ptr %838, align 8, !tbaa !50
  %840 = load ptr, ptr %26, align 8, !tbaa !5
  %841 = getelementptr inbounds %"class.Data::MemTimingSpec", ptr %840, i32 0, i32 3
  %842 = load i64, ptr %841, align 8, !tbaa !89
  %843 = trunc i64 %842 to i32
  %844 = sext i32 %843 to i64
  %845 = add nsw i64 %839, %844
  store i64 %845, ptr %70, align 8, !tbaa !9
  %846 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %69, ptr noundef nonnull align 8 dereferenceable(8) %70)
          to label %847 unwind label %851

847:                                              ; preds = %829
  %848 = load i64, ptr %846, align 8, !tbaa !9
  %849 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %850 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %849, i32 0, i32 2
  store i64 %848, ptr %850, align 8, !tbaa !59
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #6
  store i32 30, ptr %28, align 4
  br label %859

851:                                              ; preds = %829
  %852 = landingpad { ptr, i32 }
          cleanup
  %853 = extractvalue { ptr, i32 } %852, 0
  store ptr %853, ptr %15, align 8
  %854 = extractvalue { ptr, i32 } %852, 1
  store i32 %854, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %69) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #6
  br label %1011

855:                                              ; preds = %820
  br label %856

856:                                              ; preds = %855
  %857 = load i32, ptr %68, align 4, !tbaa !66
  %858 = add nsw i32 %857, -1
  store i32 %858, ptr %68, align 4, !tbaa !66
  br label %816, !llvm.loop !90

859:                                              ; preds = %847, %819
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #6
  br label %860

860:                                              ; preds = %859
  %861 = load i32, ptr %54, align 4, !tbaa !66
  %862 = sext i32 %861 to i64
  %863 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 10
  %864 = load i64, ptr %863, align 8, !tbaa !67
  %865 = sub nsw i64 %864, 1
  %866 = icmp eq i64 %862, %865
  br i1 %866, label %867, label %891

867:                                              ; preds = %860
  %868 = load i32, ptr %55, align 4, !tbaa !66
  %869 = sext i32 %868 to i64
  %870 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 11
  %871 = load i64, ptr %870, align 8, !tbaa !68
  %872 = sub nsw i64 %871, 1
  %873 = icmp eq i64 %869, %872
  br i1 %873, label %874, label %891

874:                                              ; preds = %867
  %875 = load i32, ptr %56, align 4, !tbaa !66
  %876 = sext i32 %875 to i64
  %877 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 12
  %878 = load i64, ptr %877, align 8, !tbaa !69
  %879 = sub nsw i64 %878, 1
  %880 = icmp eq i64 %876, %879
  br i1 %880, label %881, label %891

881:                                              ; preds = %874
  %882 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %883 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %882, i32 0, i32 2
  %884 = load i64, ptr %883, align 8, !tbaa !59
  %885 = add nsw i64 %884, 1
  %886 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 2
  %887 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %886, i32 0, i32 2
  store i64 %885, ptr %887, align 8, !tbaa !56
  %888 = load i64, ptr %23, align 8, !tbaa !9
  %889 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 2
  %890 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %889, i32 0, i32 1
  store i64 %888, ptr %890, align 8, !tbaa !49
  br label %891

891:                                              ; preds = %881, %874, %867, %860
  %892 = load i32, ptr %55, align 4, !tbaa !66
  %893 = sext i32 %892 to i64
  %894 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 11
  %895 = load i64, ptr %894, align 8, !tbaa !68
  %896 = sub nsw i64 %895, 1
  %897 = icmp eq i64 %893, %896
  br i1 %897, label %898, label %911

898:                                              ; preds = %891
  %899 = load i64, ptr %5, align 8, !tbaa !9
  switch i64 %899, label %910 [
    i64 0, label %900
    i64 1, label %905
  ]

900:                                              ; preds = %898
  %901 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %902 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %901, i32 0, i32 3
  %903 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %902, ptr noundef @.str.9)
          to label %904 unwind label %459

904:                                              ; preds = %900
  br label %910

905:                                              ; preds = %898
  %906 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %907 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %906, i32 0, i32 3
  %908 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %907, ptr noundef @.str.10)
          to label %909 unwind label %459

909:                                              ; preds = %905
  br label %910

910:                                              ; preds = %909, %904, %898
  br label %911

911:                                              ; preds = %910, %891
  %912 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  %913 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 3
  %914 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN4Data12cmdScheduler11commandItemaSERKS1_(ptr noundef nonnull align 8 dereferenceable(88) %913, ptr noundef nonnull align 8 dereferenceable(88) %912)
          to label %915 unwind label %459

915:                                              ; preds = %911
  %916 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 6
  %917 = load i64, ptr %23, align 8, !tbaa !9
  %918 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %17, i64 noundef %917) #6
  %919 = load i64, ptr %918, align 8, !tbaa !9
  %920 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %916, i64 noundef %919) #6
  %921 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  invoke void @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %920, ptr noundef nonnull align 8 dereferenceable(88) %921)
          to label %922 unwind label %459

922:                                              ; preds = %915
  %923 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 7
  %924 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 1
  invoke void @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %923, ptr noundef nonnull align 8 dereferenceable(88) %924)
          to label %925 unwind label %459

925:                                              ; preds = %922
  %926 = load i32, ptr %55, align 4, !tbaa !66
  %927 = sext i32 %926 to i64
  %928 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 11
  %929 = load i64, ptr %928, align 8, !tbaa !68
  %930 = sub nsw i64 %929, 1
  %931 = icmp eq i64 %927, %930
  br i1 %931, label %932, label %1005

932:                                              ; preds = %925
  %933 = load i64, ptr %23, align 8, !tbaa !9
  %934 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 5
  %935 = load i64, ptr %23, align 8, !tbaa !9
  %936 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %934, i64 noundef %935) #6
  %937 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %936, i32 0, i32 1
  store i64 %933, ptr %937, align 8, !tbaa !87
  %938 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 5
  %939 = load i64, ptr %23, align 8, !tbaa !9
  %940 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %938, i64 noundef %939) #6
  %941 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %940, i32 0, i32 0
  store i64 3, ptr %941, align 8, !tbaa !91
  %942 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 5
  %943 = load i64, ptr %23, align 8, !tbaa !9
  %944 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %942, i64 noundef %943) #6
  %945 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %944, i32 0, i32 3
  %946 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %945, ptr noundef @.str.1)
          to label %947 unwind label %459

947:                                              ; preds = %932
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #6
  %948 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 4
  %949 = call noundef i64 @_ZNKSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %948) #6
  %950 = sub i64 %949, 1
  %951 = trunc i64 %950 to i32
  store i32 %951, ptr %71, align 4, !tbaa !66
  br label %952

952:                                              ; preds = %994, %947
  %953 = load i32, ptr %71, align 4, !tbaa !66
  %954 = icmp sge i32 %953, 0
  br i1 %954, label %956, label %955

955:                                              ; preds = %952
  store i32 34, ptr %28, align 4
  br label %997

956:                                              ; preds = %952
  %957 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 4
  %958 = load i32, ptr %71, align 4, !tbaa !66
  %959 = sext i32 %958 to i64
  %960 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %957, i64 noundef %959) #6
  %961 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %960, i32 0, i32 1
  %962 = load i64, ptr %961, align 8, !tbaa !87
  %963 = load i64, ptr %23, align 8, !tbaa !9
  %964 = icmp eq i64 %962, %963
  br i1 %964, label %965, label %993

965:                                              ; preds = %956
  call void @llvm.lifetime.start.p0(i64 8, ptr %72) #6
  %966 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 4
  %967 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %966) #6
  %968 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %967, i32 0, i32 2
  %969 = load i64, ptr %968, align 8, !tbaa !50
  %970 = load ptr, ptr %26, align 8, !tbaa !5
  %971 = getelementptr inbounds %"class.Data::MemTimingSpec", ptr %970, i32 0, i32 20
  %972 = load i64, ptr %971, align 8, !tbaa !92
  %973 = trunc i64 %972 to i32
  %974 = sext i32 %973 to i64
  %975 = add nsw i64 %969, %974
  store i64 %975, ptr %72, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %73) #6
  %976 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 3
  %977 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %976, i32 0, i32 2
  %978 = load i64, ptr %977, align 8, !tbaa !81
  %979 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 21
  %980 = load i64, ptr %979, align 8, !tbaa !65
  %981 = add nsw i64 %978, %980
  store i64 %981, ptr %73, align 8, !tbaa !9
  %982 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %72, ptr noundef nonnull align 8 dereferenceable(8) %73)
          to label %983 unwind label %989

983:                                              ; preds = %965
  %984 = load i64, ptr %982, align 8, !tbaa !9
  %985 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 5
  %986 = load i64, ptr %23, align 8, !tbaa !9
  %987 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %985, i64 noundef %986) #6
  %988 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %987, i32 0, i32 2
  store i64 %984, ptr %988, align 8, !tbaa !50
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #6
  store i32 34, ptr %28, align 4
  br label %997

989:                                              ; preds = %965
  %990 = landingpad { ptr, i32 }
          cleanup
  %991 = extractvalue { ptr, i32 } %990, 0
  store ptr %991, ptr %15, align 8
  %992 = extractvalue { ptr, i32 } %990, 1
  store i32 %992, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %73) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %72) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #6
  br label %1011

993:                                              ; preds = %956
  br label %994

994:                                              ; preds = %993
  %995 = load i32, ptr %71, align 4, !tbaa !66
  %996 = add nsw i32 %995, -1
  store i32 %996, ptr %71, align 4, !tbaa !66
  br label %952, !llvm.loop !93

997:                                              ; preds = %983, %955
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #6
  br label %998

998:                                              ; preds = %997
  %999 = load i64, ptr %8, align 8, !tbaa !9
  %1000 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %999) #6
  %1001 = load i64, ptr %1000, align 8, !tbaa !9
  %1002 = add i64 %1001, 1
  %1003 = load i64, ptr %8, align 8, !tbaa !9
  %1004 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %12, i64 noundef %1003) #6
  store i64 %1002, ptr %1004, align 8, !tbaa !9
  br label %1005

1005:                                             ; preds = %998, %925
  %1006 = load i64, ptr %7, align 8, !tbaa !9
  %1007 = add i64 %1006, 1
  store i64 %1007, ptr %7, align 8, !tbaa !9
  br label %1008

1008:                                             ; preds = %1005
  %1009 = load i32, ptr %56, align 4, !tbaa !66
  %1010 = add nsw i32 %1009, 1
  store i32 %1010, ptr %56, align 4, !tbaa !66
  br label %441, !llvm.loop !94

1011:                                             ; preds = %989, %851, %767, %677, %643, %634, %622, %459
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #6
  br label %1016

1012:                                             ; preds = %447
  br label %1013

1013:                                             ; preds = %1012
  %1014 = load i32, ptr %55, align 4, !tbaa !66
  %1015 = add nsw i32 %1014, 1
  store i32 %1015, ptr %55, align 4, !tbaa !66
  br label %420, !llvm.loop !95

1016:                                             ; preds = %1011, %436
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #6
  br label %1190

1017:                                             ; preds = %426
  br label %1018

1018:                                             ; preds = %1017
  %1019 = load i32, ptr %54, align 4, !tbaa !66
  %1020 = add nsw i32 %1019, 1
  store i32 %1020, ptr %54, align 4, !tbaa !66
  br label %408, !llvm.loop !96

1021:                                             ; preds = %414
  %1022 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 7
  %1023 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1022) #6
  %1024 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %74, i32 0, i32 0
  store ptr %1023, ptr %1024, align 8
  %1025 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 7
  %1026 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1025) #6
  %1027 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %75, i32 0, i32 0
  store ptr %1026, ptr %1027, align 8
  %1028 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %74, i32 0, i32 0
  %1029 = load ptr, ptr %1028, align 8
  %1030 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %75, i32 0, i32 0
  %1031 = load ptr, ptr %1030, align 8
  invoke void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN4Data12cmdScheduler11commandItemESt6vectorIS4_SaIS4_EEEENS4_17commandItemSorterEEvT_SB_T0_(ptr %1029, ptr %1031)
          to label %1032 unwind label %415

1032:                                             ; preds = %1021
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #6
  store i32 0, ptr %77, align 4, !tbaa !66
  br label %1033

1033:                                             ; preds = %1047, %1032
  %1034 = load i32, ptr %77, align 4, !tbaa !66
  %1035 = zext i32 %1034 to i64
  %1036 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 7
  %1037 = call noundef i64 @_ZNKSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1036) #6
  %1038 = icmp ult i64 %1035, %1037
  br i1 %1038, label %1040, label %1039

1039:                                             ; preds = %1033
  store i32 37, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #6
  br label %1054

1040:                                             ; preds = %1033
  %1041 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 8
  %1042 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 7
  %1043 = load i32, ptr %77, align 4, !tbaa !66
  %1044 = zext i32 %1043 to i64
  %1045 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1042, i64 noundef %1044) #6
  invoke void @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %1041, ptr noundef nonnull align 8 dereferenceable(88) %1045)
          to label %1046 unwind label %1050

1046:                                             ; preds = %1040
  br label %1047

1047:                                             ; preds = %1046
  %1048 = load i32, ptr %77, align 4, !tbaa !66
  %1049 = add i32 %1048, 1
  store i32 %1049, ptr %77, align 4, !tbaa !66
  br label %1033, !llvm.loop !97

1050:                                             ; preds = %1040
  %1051 = landingpad { ptr, i32 }
          cleanup
  %1052 = extractvalue { ptr, i32 } %1051, 0
  store ptr %1052, ptr %15, align 8
  %1053 = extractvalue { ptr, i32 } %1051, 1
  store i32 %1053, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #6
  br label %1190

1054:                                             ; preds = %1039
  %1055 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 4
  %1056 = call noundef i64 @_ZNKSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1055) #6
  %1057 = load ptr, ptr %4, align 8, !tbaa !5
  %1058 = getelementptr inbounds %"class.Data::MemorySpecification", ptr %1057, i32 0, i32 4
  %1059 = getelementptr inbounds %"class.Data::MemArchitectureSpec", ptr %1058, i32 0, i32 2
  %1060 = load i64, ptr %1059, align 8, !tbaa !98
  %1061 = icmp uge i64 %1056, %1060
  br i1 %1061, label %1062, label %1186

1062:                                             ; preds = %1054
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #6
  store i32 0, ptr %78, align 4, !tbaa !66
  br label %1063

1063:                                             ; preds = %1172, %1062
  %1064 = load i32, ptr %78, align 4, !tbaa !66
  %1065 = sext i32 %1064 to i64
  %1066 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 10
  %1067 = load i64, ptr %1066, align 8, !tbaa !67
  %1068 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 12
  %1069 = load i64, ptr %1068, align 8, !tbaa !69
  %1070 = mul nsw i64 %1067, %1069
  %1071 = icmp slt i64 %1065, %1070
  br i1 %1071, label %1073, label %1072

1072:                                             ; preds = %1063
  store i32 40, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #6
  br label %1176

1073:                                             ; preds = %1063
  %1074 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %80) #6
  %1075 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 4
  %1076 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1075) #6
  %1077 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %80, i32 0, i32 0
  store ptr %1076, ptr %1077, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN4Data12cmdScheduler11commandItemESt6vectorIS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S8_EE(ptr noundef nonnull align 8 dereferenceable(8) %79, ptr noundef nonnull align 8 dereferenceable(8) %80) #6
  %1078 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %79, i32 0, i32 0
  %1079 = load ptr, ptr %1078, align 8
  %1080 = invoke ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS2_S4_EE(ptr noundef nonnull align 8 dereferenceable(24) %1074, ptr %1079)
          to label %1081 unwind label %1111

1081:                                             ; preds = %1073
  %1082 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %81, i32 0, i32 0
  store ptr %1080, ptr %1082, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #6
  %1083 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 6
  %1084 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1083, i64 noundef 0) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %83) #6
  %1085 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 6
  %1086 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1085, i64 noundef 0) #6
  %1087 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1086) #6
  %1088 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %83, i32 0, i32 0
  store ptr %1087, ptr %1088, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN4Data12cmdScheduler11commandItemESt6vectorIS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S8_EE(ptr noundef nonnull align 8 dereferenceable(8) %82, ptr noundef nonnull align 8 dereferenceable(8) %83) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %85) #6
  %1089 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 6
  %1090 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1089, i64 noundef 0) #6
  %1091 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1090) #6
  %1092 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %85, i32 0, i32 0
  store ptr %1091, ptr %1092, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN4Data12cmdScheduler11commandItemESt6vectorIS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S8_EE(ptr noundef nonnull align 8 dereferenceable(8) %84, ptr noundef nonnull align 8 dereferenceable(8) %85) #6
  %1093 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %82, i32 0, i32 0
  %1094 = load ptr, ptr %1093, align 8
  %1095 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %84, i32 0, i32 0
  %1096 = load ptr, ptr %1095, align 8
  %1097 = invoke ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS2_S4_EES9_(ptr noundef nonnull align 8 dereferenceable(24) %1084, ptr %1094, ptr %1096)
          to label %1098 unwind label %1115

1098:                                             ; preds = %1081
  %1099 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %86, i32 0, i32 0
  store ptr %1097, ptr %1099, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #6
  store i32 0, ptr %87, align 4, !tbaa !66
  br label %1100

1100:                                             ; preds = %1159, %1098
  %1101 = load i32, ptr %87, align 4, !tbaa !66
  %1102 = sext i32 %1101 to i64
  %1103 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 22
  %1104 = load i64, ptr %1103, align 8, !tbaa !77
  %1105 = sub nsw i64 %1104, 1
  %1106 = load i32, ptr %78, align 4, !tbaa !66
  %1107 = sext i32 %1106 to i64
  %1108 = sub nsw i64 %1105, %1107
  %1109 = icmp slt i64 %1102, %1108
  br i1 %1109, label %1119, label %1110

1110:                                             ; preds = %1100
  store i32 43, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #6
  br label %1171

1111:                                             ; preds = %1073
  %1112 = landingpad { ptr, i32 }
          cleanup
  %1113 = extractvalue { ptr, i32 } %1112, 0
  store ptr %1113, ptr %15, align 8
  %1114 = extractvalue { ptr, i32 } %1112, 1
  store i32 %1114, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %80) #6
  br label %1175

1115:                                             ; preds = %1081
  %1116 = landingpad { ptr, i32 }
          cleanup
  %1117 = extractvalue { ptr, i32 } %1116, 0
  store ptr %1117, ptr %15, align 8
  %1118 = extractvalue { ptr, i32 } %1116, 1
  store i32 %1118, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %85) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %83) #6
  br label %1175

1119:                                             ; preds = %1100
  %1120 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 6
  %1121 = load i32, ptr %87, align 4, !tbaa !66
  %1122 = sext i32 %1121 to i64
  %1123 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1120, i64 noundef %1122) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #6
  %1124 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 6
  %1125 = load i32, ptr %87, align 4, !tbaa !66
  %1126 = sext i32 %1125 to i64
  %1127 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1124, i64 noundef %1126) #6
  %1128 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1127) #6
  %1129 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %89, i32 0, i32 0
  store ptr %1128, ptr %1129, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN4Data12cmdScheduler11commandItemESt6vectorIS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S8_EE(ptr noundef nonnull align 8 dereferenceable(8) %88, ptr noundef nonnull align 8 dereferenceable(8) %89) #6
  %1130 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 6
  %1131 = load i32, ptr %87, align 4, !tbaa !66
  %1132 = add nsw i32 %1131, 1
  %1133 = sext i32 %1132 to i64
  %1134 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1130, i64 noundef %1133) #6
  %1135 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1134) #6
  %1136 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %90, i32 0, i32 0
  store ptr %1135, ptr %1136, align 8
  %1137 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 6
  %1138 = load i32, ptr %87, align 4, !tbaa !66
  %1139 = add nsw i32 %1138, 1
  %1140 = sext i32 %1139 to i64
  %1141 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1137, i64 noundef %1140) #6
  %1142 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1141) #6
  %1143 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %91, i32 0, i32 0
  store ptr %1142, ptr %1143, align 8
  %1144 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %88, i32 0, i32 0
  %1145 = load ptr, ptr %1144, align 8
  %1146 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %90, i32 0, i32 0
  %1147 = load ptr, ptr %1146, align 8
  %1148 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %91, i32 0, i32 0
  %1149 = load ptr, ptr %1148, align 8
  %1150 = invoke ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE6insertIN9__gnu_cxx17__normal_iteratorIPS2_S4_EEvEES9_NS7_IPKS2_S4_EET_SD_(ptr noundef nonnull align 8 dereferenceable(24) %1123, ptr %1145, ptr %1147, ptr %1149)
          to label %1151 unwind label %1162

1151:                                             ; preds = %1119
  %1152 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %92, i32 0, i32 0
  store ptr %1150, ptr %1152, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #6
  %1153 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 6
  %1154 = load i32, ptr %87, align 4, !tbaa !66
  %1155 = add nsw i32 %1154, 1
  %1156 = sext i32 %1155 to i64
  %1157 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1153, i64 noundef %1156) #6
  invoke void @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %1157, i64 noundef 0)
          to label %1158 unwind label %1166

1158:                                             ; preds = %1151
  br label %1159

1159:                                             ; preds = %1158
  %1160 = load i32, ptr %87, align 4, !tbaa !66
  %1161 = add nsw i32 %1160, 1
  store i32 %1161, ptr %87, align 4, !tbaa !66
  br label %1100, !llvm.loop !104

1162:                                             ; preds = %1119
  %1163 = landingpad { ptr, i32 }
          cleanup
  %1164 = extractvalue { ptr, i32 } %1163, 0
  store ptr %1164, ptr %15, align 8
  %1165 = extractvalue { ptr, i32 } %1163, 1
  store i32 %1165, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #6
  br label %1170

1166:                                             ; preds = %1151
  %1167 = landingpad { ptr, i32 }
          cleanup
  %1168 = extractvalue { ptr, i32 } %1167, 0
  store ptr %1168, ptr %15, align 8
  %1169 = extractvalue { ptr, i32 } %1167, 1
  store i32 %1169, ptr %16, align 4
  br label %1170

1170:                                             ; preds = %1166, %1162
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #6
  br label %1175

1171:                                             ; preds = %1110
  br label %1172

1172:                                             ; preds = %1171
  %1173 = load i32, ptr %78, align 4, !tbaa !66
  %1174 = add nsw i32 %1173, 1
  store i32 %1174, ptr %78, align 4, !tbaa !66
  br label %1063, !llvm.loop !105

1175:                                             ; preds = %1170, %1115, %1111
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #6
  br label %1190

1176:                                             ; preds = %1072
  %1177 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 22
  %1178 = load i64, ptr %1177, align 8, !tbaa !77
  %1179 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 10
  %1180 = load i64, ptr %1179, align 8, !tbaa !67
  %1181 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 12
  %1182 = load i64, ptr %1181, align 8, !tbaa !69
  %1183 = mul nsw i64 %1180, %1182
  %1184 = sub nsw i64 %1178, %1183
  %1185 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 22
  store i64 %1184, ptr %1185, align 8, !tbaa !77
  br label %1186

1186:                                             ; preds = %1176, %1054
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #6
  br label %1187

1187:                                             ; preds = %1186
  %1188 = load i64, ptr %27, align 8, !tbaa !9
  %1189 = add i64 %1188, 1
  store i64 %1189, ptr %27, align 8, !tbaa !9
  br label %112, !llvm.loop !106

1190:                                             ; preds = %1175, %1050, %1016, %415
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #6
  br label %1191

1191:                                             ; preds = %1190, %393, %257, %253, %213, %176, %153
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #6
  br label %1266

1192:                                             ; preds = %117
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #6
  store i32 0, ptr %93, align 4, !tbaa !66
  br label %1193

1193:                                             ; preds = %1240, %1192
  %1194 = load i32, ptr %93, align 4, !tbaa !66
  %1195 = zext i32 %1194 to i64
  %1196 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 8
  %1197 = call noundef i64 @_ZNKSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %1196) #6
  %1198 = icmp ult i64 %1195, %1197
  br i1 %1198, label %1200, label %1199

1199:                                             ; preds = %1193
  store i32 46, ptr %28, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #6
  br label %1247

1200:                                             ; preds = %1193
  %1201 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 29
  %1202 = load ptr, ptr %1201, align 8, !tbaa !107
  %1203 = getelementptr i8, ptr %1202, i64 -24
  %1204 = load i64, ptr %1203, align 8
  %1205 = getelementptr inbounds i8, ptr %1201, i64 %1204
  %1206 = invoke noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216) %1205, i64 noundef 0)
          to label %1207 unwind label %1243

1207:                                             ; preds = %1200
  %1208 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 29
  %1209 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %1208, ptr noundef @_ZSt5fixedRSt8ios_base)
          to label %1210 unwind label %1243

1210:                                             ; preds = %1207
  %1211 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 8
  %1212 = load i32, ptr %93, align 4, !tbaa !66
  %1213 = zext i32 %1212 to i64
  %1214 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1211, i64 noundef %1213) #6
  %1215 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %1214, i32 0, i32 2
  %1216 = load i64, ptr %1215, align 8, !tbaa !50
  %1217 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEl(ptr noundef nonnull align 8 dereferenceable(8) %1209, i64 noundef %1216)
          to label %1218 unwind label %1243

1218:                                             ; preds = %1210
  %1219 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1217, ptr noundef @.str.11)
          to label %1220 unwind label %1243

1220:                                             ; preds = %1218
  %1221 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 8
  %1222 = load i32, ptr %93, align 4, !tbaa !66
  %1223 = zext i32 %1222 to i64
  %1224 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1221, i64 noundef %1223) #6
  %1225 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %1224, i32 0, i32 3
  %1226 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %1219, ptr noundef nonnull align 8 dereferenceable(32) %1225)
          to label %1227 unwind label %1243

1227:                                             ; preds = %1220
  %1228 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1226, ptr noundef @.str.11)
          to label %1229 unwind label %1243

1229:                                             ; preds = %1227
  %1230 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 8
  %1231 = load i32, ptr %93, align 4, !tbaa !66
  %1232 = zext i32 %1231 to i64
  %1233 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %1230, i64 noundef %1232) #6
  %1234 = getelementptr inbounds %"class.Data::cmdScheduler::commandItem", ptr %1233, i32 0, i32 1
  %1235 = load i64, ptr %1234, align 8, !tbaa !87
  %1236 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEl(ptr noundef nonnull align 8 dereferenceable(8) %1228, i64 noundef %1235)
          to label %1237 unwind label %1243

1237:                                             ; preds = %1229
  %1238 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %1236, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %1239 unwind label %1243

1239:                                             ; preds = %1237
  br label %1240

1240:                                             ; preds = %1239
  %1241 = load i32, ptr %93, align 4, !tbaa !66
  %1242 = add i32 %1241, 1
  store i32 %1242, ptr %93, align 4, !tbaa !66
  br label %1193, !llvm.loop !109

1243:                                             ; preds = %1237, %1229, %1227, %1220, %1218, %1210, %1207, %1200
  %1244 = landingpad { ptr, i32 }
          cleanup
  %1245 = extractvalue { ptr, i32 } %1244, 0
  store ptr %1245, ptr %15, align 8
  %1246 = extractvalue { ptr, i32 } %1244, 1
  store i32 %1246, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #6
  br label %1266

1247:                                             ; preds = %1199
  %1248 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %95) #6
  %1249 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 8
  %1250 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %1249) #6
  %1251 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %95, i32 0, i32 0
  store ptr %1250, ptr %1251, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN4Data12cmdScheduler11commandItemESt6vectorIS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S8_EE(ptr noundef nonnull align 8 dereferenceable(8) %94, ptr noundef nonnull align 8 dereferenceable(8) %95) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #6
  %1252 = getelementptr inbounds %"class.Data::cmdScheduler", ptr %99, i32 0, i32 8
  %1253 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %1252) #6
  %1254 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %97, i32 0, i32 0
  store ptr %1253, ptr %1254, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN4Data12cmdScheduler11commandItemESt6vectorIS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S8_EE(ptr noundef nonnull align 8 dereferenceable(8) %96, ptr noundef nonnull align 8 dereferenceable(8) %97) #6
  %1255 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %94, i32 0, i32 0
  %1256 = load ptr, ptr %1255, align 8
  %1257 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator.19", ptr %96, i32 0, i32 0
  %1258 = load ptr, ptr %1257, align 8
  %1259 = invoke ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS2_S4_EES9_(ptr noundef nonnull align 8 dereferenceable(24) %1248, ptr %1256, ptr %1258)
          to label %1260 unwind label %1262

1260:                                             ; preds = %1247
  %1261 = getelementptr inbounds %"class.__gnu_cxx::__normal_iterator", ptr %98, i32 0, i32 0
  store ptr %1259, ptr %1261, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #6
  call void @_ZNSt13_Bvector_baseISaIbEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %20) #6
  call void @llvm.lifetime.end.p0(i64 40, ptr %20) #6
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #6
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #6
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #6
  ret void

1262:                                             ; preds = %1247
  %1263 = landingpad { ptr, i32 }
          cleanup
  %1264 = extractvalue { ptr, i32 } %1263, 0
  store ptr %1264, ptr %15, align 8
  %1265 = extractvalue { ptr, i32 } %1263, 1
  store i32 %1265, ptr %16, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %95) #6
  br label %1266

1266:                                             ; preds = %1262, %1243, %1191
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #6
  call void @_ZNSt13_Bvector_baseISaIbEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %20) #6
  br label %1267

1267:                                             ; preds = %1266, %126
  call void @llvm.lifetime.end.p0(i64 40, ptr %20) #6
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %17) #6
  br label %1268

1268:                                             ; preds = %1267, %122
  call void @llvm.lifetime.end.p0(i64 24, ptr %17) #6
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %12) #6
  br label %1269

1269:                                             ; preds = %1268, %118
  call void @llvm.lifetime.end.p0(i64 24, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %6) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #6
  br label %1270

1270:                                             ; preds = %1269
  %1271 = load ptr, ptr %15, align 8
  %1272 = load i32, ptr %16, align 4
  %1273 = insertvalue { ptr, i32 } poison, ptr %1271, 0
  %1274 = insertvalue { ptr, i32 } %1273, i32 %1272, 1
  resume { ptr, i32 } %1274
}

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, i32 } @_ZNSt6vectorIbSaIbEE5beginEv(ptr noundef nonnull align 8 dereferenceable(40)) #2 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, i32 } @_ZNSt6vectorIbSaIbEE3endEv(ptr noundef nonnull align 8 dereferenceable(40)) #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNKSt13_Bit_iteratordeEv(ptr noundef nonnull align 8 dereferenceable(12)) #1 align 2

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

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Data12cmdScheduler9memoryMapENS0_5transERKNS_19MemorySpecificationE(ptr dead_on_unwind noalias writable sret(%"class.Data::cmdScheduler::physicalAddr") align 8, ptr noundef nonnull align 8 dereferenceable(1080), ptr noundef byval(%"class.Data::cmdScheduler::trans") align 8, ptr noundef nonnull align 8 dereferenceable(736)) #1 align 2

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

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

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Data12cmdScheduler12pdSchedulingEllRKNS_19MemorySpecificationE(ptr noundef nonnull align 8 dereferenceable(1080), i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(736)) #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN4Data12cmdScheduler7getRWTPElRKNS_19MemorySpecificationE(ptr noundef nonnull align 8 dereferenceable(1080), i64 noundef, ptr noundef nonnull align 8 dereferenceable(736)) #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Data12cmdScheduler20getTimingConstraintsEbRKNS_19MemorySpecificationEll(ptr noundef nonnull align 8 dereferenceable(1080), i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(736), i64 noundef, i64 noundef) #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef) #1 align 2

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(88) ptr @_ZN4Data12cmdScheduler11commandItemaSERKS1_(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(88)) #5 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN4Data12cmdScheduler11commandItemESt6vectorIS4_SaIS4_EEEENS4_17commandItemSorterEEvT_SB_T0_(ptr, ptr) #5

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216), i64 noundef) #2 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef nonnull align 8 dereferenceable(32)) #5

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

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

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

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

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

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

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

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

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

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

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

!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 = !{!"long", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"bool", !7, i64 0}
!13 = !{!14, !10, i64 544}
!14 = !{!"_ZTSN4Data12cmdSchedulerE", !15, i64 0, !19, i64 24, !19, i64 112, !19, i64 200, !23, i64 288, !23, i64 312, !27, i64 336, !23, i64 360, !23, i64 384, !31, i64 408, !10, i64 416, !10, i64 424, !10, i64 432, !10, i64 440, !10, i64 448, !10, i64 456, !10, i64 464, !10, i64 472, !10, i64 480, !10, i64 488, !10, i64 496, !10, i64 504, !10, i64 512, !10, i64 520, !10, i64 528, !10, i64 536, !10, i64 544, !12, i64 552, !10, i64 560, !32, i64 568}
!15 = !{!"_ZTSSt6vectorIN4Data12cmdScheduler5transESaIS2_EE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseIN4Data12cmdScheduler5transESaIS2_EE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIN4Data12cmdScheduler5transESaIS2_EE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIN4Data12cmdScheduler5transESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!19 = !{!"_ZTSN4Data12cmdScheduler11commandItemE", !10, i64 0, !10, i64 8, !10, i64 16, !20, i64 24, !22, i64 56}
!20 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !21, i64 0, !10, i64 8, !7, i64 16}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!22 = !{!"_ZTSN4Data12cmdScheduler12physicalAddrE", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24}
!23 = !{!"_ZTSSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE", !24, i64 0}
!24 = !{!"_ZTSSt12_Vector_baseIN4Data12cmdScheduler11commandItemESaIS2_EE", !25, i64 0}
!25 = !{!"_ZTSNSt12_Vector_baseIN4Data12cmdScheduler11commandItemESaIS2_EE12_Vector_implE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseIN4Data12cmdScheduler11commandItemESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!27 = !{!"_ZTSSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EE", !28, i64 0}
!28 = !{!"_ZTSSt12_Vector_baseISt6vectorIN4Data12cmdScheduler11commandItemESaIS3_EESaIS5_EE", !29, i64 0}
!29 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN4Data12cmdScheduler11commandItemESaIS3_EESaIS5_EE12_Vector_implE", !30, i64 0}
!30 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN4Data12cmdScheduler11commandItemESaIS3_EESaIS5_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!31 = !{!"int", !7, i64 0}
!32 = !{!"_ZTSSt14basic_ofstreamIcSt11char_traitsIcEE", !33, i64 0, !34, i64 8}
!33 = !{!"_ZTSSo"}
!34 = !{!"_ZTSSt13basic_filebufIcSt11char_traitsIcEE", !35, i64 0, !7, i64 64, !37, i64 104, !38, i64 120, !39, i64 124, !39, i64 132, !39, i64 140, !6, i64 152, !10, i64 160, !12, i64 168, !12, i64 169, !12, i64 170, !7, i64 171, !6, i64 176, !6, i64 184, !12, i64 192, !6, i64 200, !6, i64 208, !10, i64 216, !6, i64 224, !6, i64 232}
!35 = !{!"_ZTSSt15basic_streambufIcSt11char_traitsIcEE", !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !36, i64 56}
!36 = !{!"_ZTSSt6locale", !6, i64 0}
!37 = !{!"_ZTSSt12__basic_fileIcE", !6, i64 0, !12, i64 8}
!38 = !{!"_ZTSSt13_Ios_Openmode", !7, i64 0}
!39 = !{!"_ZTS11__mbstate_t", !31, i64 0, !7, i64 4}
!40 = !{!14, !10, i64 520}
!41 = !{!14, !10, i64 456}
!42 = !{!14, !12, i64 552}
!43 = !{!44, !10, i64 8}
!44 = !{!"_ZTSN4Data12cmdScheduler5transE", !10, i64 0, !10, i64 8, !10, i64 16}
!45 = !{i64 0, i64 8, !9, i64 8, i64 8, !9, i64 16, i64 8, !9}
!46 = !{i64 0, i64 8, !9, i64 8, i64 8, !9, i64 16, i64 8, !9, i64 24, i64 8, !9}
!47 = !{!22, !10, i64 8}
!48 = !{!22, !10, i64 16}
!49 = !{!14, !10, i64 120}
!50 = !{!19, !10, i64 16}
!51 = !{!52, !10, i64 136}
!52 = !{!"_ZTSN4Data13MemTimingSpecE", !53, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !10, i64 128, !10, i64 136, !10, i64 144, !10, i64 152, !10, i64 160, !10, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !10, i64 224, !10, i64 232, !10, i64 240, !10, i64 248, !53, i64 256}
!53 = !{!"double", !7, i64 0}
!54 = !{!14, !10, i64 448}
!55 = !{!14, !10, i64 488}
!56 = !{!14, !10, i64 128}
!57 = !{!52, !10, i64 120}
!58 = !{!14, !10, i64 32}
!59 = !{!14, !10, i64 40}
!60 = !{!52, !10, i64 144}
!61 = !{!14, !10, i64 560}
!62 = distinct !{!62, !63}
!63 = !{!"llvm.loop.mustprogress"}
!64 = !{!44, !10, i64 0}
!65 = !{!14, !10, i64 504}
!66 = !{!31, !31, i64 0}
!67 = !{!14, !10, i64 416}
!68 = !{!14, !10, i64 424}
!69 = !{!14, !10, i64 432}
!70 = !{i8 0, i8 2}
!71 = !{}
!72 = !{!14, !10, i64 200}
!73 = !{!14, !10, i64 88}
!74 = !{!22, !10, i64 0}
!75 = !{!14, !10, i64 80}
!76 = !{!14, !10, i64 24}
!77 = !{!14, !10, i64 512}
!78 = !{!14, !10, i64 464}
!79 = !{!52, !10, i64 80}
!80 = !{!52, !10, i64 88}
!81 = !{!14, !10, i64 216}
!82 = distinct !{!82, !63}
!83 = distinct !{!83, !63}
!84 = !{!22, !10, i64 24}
!85 = !{!14, !10, i64 536}
!86 = !{!14, !10, i64 104}
!87 = !{!19, !10, i64 8}
!88 = !{!14, !10, i64 496}
!89 = !{!52, !10, i64 24}
!90 = distinct !{!90, !63}
!91 = !{!19, !10, i64 0}
!92 = !{!52, !10, i64 160}
!93 = distinct !{!93, !63}
!94 = distinct !{!94, !63}
!95 = distinct !{!95, !63}
!96 = distinct !{!96, !63}
!97 = distinct !{!97, !63}
!98 = !{!99, !10, i64 64}
!99 = !{!"_ZTSN4Data19MemorySpecificationE", !20, i64 8, !100, i64 40, !102, i64 48, !52, i64 160, !103, i64 456}
!100 = !{!"_ZTSN4Data10MemoryTypeE", !101, i64 0}
!101 = !{!"_ZTSN4Data10MemoryType12MemoryType_tE", !7, i64 0}
!102 = !{!"_ZTSN4Data19MemArchitectureSpecE", !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !12, i64 72, !12, i64 73, !12, i64 74}
!103 = !{!"_ZTSN4Data12MemPowerSpecE", !53, i64 8, !53, i64 16, !53, i64 24, !53, i64 32, !53, i64 40, !53, i64 48, !53, i64 56, !53, i64 64, !53, i64 72, !53, i64 80, !53, i64 88, !53, i64 96, !53, i64 104, !53, i64 112, !53, i64 120, !53, i64 128, !53, i64 136, !53, i64 144, !53, i64 152, !53, i64 160, !53, i64 168, !53, i64 176, !53, i64 184, !53, i64 192, !53, i64 200, !53, i64 208, !53, i64 216, !53, i64 224, !53, i64 232, !53, i64 240}
!104 = distinct !{!104, !63}
!105 = distinct !{!105, !63}
!106 = distinct !{!106, !63}
!107 = !{!108, !108, i64 0}
!108 = !{!"vtable pointer", !8, i64 0}
!109 = distinct !{!109, !63}


; 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::vector.24" = type { %"struct.std::_Vector_base.25" }
%"struct.std::_Vector_base.25" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl" = type { %"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<unsigned long, std::allocator<unsigned long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.26" = type { i8 }
%"class.std::vector.29" = type { %"struct.std::_Vector_base.30" }
%"struct.std::_Vector_base.30" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl" = type { %"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" }
%"struct.std::_Vector_base<long, std::allocator<long>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.31" = type { i8 }
%"class.std::vector.34" = type { %"struct.std::_Bvector_base" }
%"struct.std::_Bvector_base" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl" = type { %"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" }
%"struct.std::_Bvector_base<std::allocator<bool>>::_Bvector_impl_data" = type { %"struct.std::_Bit_iterator", %"struct.std::_Bit_iterator", ptr }
%"struct.std::_Bit_iterator" = type { %"struct.std::_Bit_iterator_base.base", [4 x i8] }
%"struct.std::_Bit_iterator_base.base" = type <{ ptr, i32 }>
%"class.std::allocator.35" = type { i8 }
%"class.__gnu_cxx::__normal_iterator.19" = type { ptr }
%"class.__gnu_cxx::__normal_iterator" = type { ptr }
%"struct.std::_Bit_reference" = type { ptr, i64 }
%"class.__gnu_cxx::__normal_iterator.38" = type { ptr }
%"class.Data::cmdScheduler::physicalAddr" = type { i64, i64, i64, i64 }
%"class.__gnu_cxx::__normal_iterator.39" = type { ptr }
%"class.Data::cmdScheduler::trans" = type { i64, i64, i64 }

@.str.1 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [2 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 uwtable
declare dso_local ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS2_S4_EES9_(ptr noundef nonnull align 8 dereferenceable(24), ptr, ptr) local_unnamed_addr #1 align 2

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

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

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

; 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 #1 align 2

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

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

declare i32 @__gxx_personality_v0(...)

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

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4Data12cmdScheduler20analyticalSchedulingERKNS_19MemorySpecificationE(ptr noundef nonnull align 8 dereferenceable(1080) %0, ptr noundef nonnull align 8 dereferenceable(736) %1) local_unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %3 = alloca i64, align 8
  %4 = alloca %"class.std::vector.24", align 8
  %5 = alloca i64, align 8
  %6 = alloca %"class.std::allocator.26", align 1
  %7 = alloca %"class.std::vector.29", align 8
  %8 = alloca i64, align 8
  %9 = alloca %"class.std::allocator.31", align 1
  %10 = alloca %"class.std::vector.34", align 8
  %11 = alloca i8, align 1
  %12 = alloca %"class.std::allocator.35", align 1
  %13 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %14 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %15 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %16 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %17 = alloca %"struct.std::_Bit_iterator", align 8
  %18 = alloca %"struct.std::_Bit_iterator", align 8
  %19 = alloca %"struct.std::_Bit_reference", align 8
  %20 = alloca %"class.__gnu_cxx::__normal_iterator.38", align 8
  %21 = alloca %"class.__gnu_cxx::__normal_iterator.38", align 8
  %22 = alloca %"class.Data::cmdScheduler::physicalAddr", align 8
  %23 = alloca %"class.__gnu_cxx::__normal_iterator.39", align 8
  %24 = alloca %"class.__gnu_cxx::__normal_iterator.39", align 8
  %25 = alloca i64, align 8
  %26 = alloca i64, align 8
  %27 = alloca %"struct.std::_Bit_reference", align 8
  %28 = alloca i64, align 8
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca i64, align 8
  %34 = alloca i64, align 8
  %35 = alloca %"struct.std::_Bit_reference", align 8
  %36 = alloca i64, align 8
  %37 = alloca i64, align 8
  %38 = alloca i64, align 8
  %39 = alloca i64, align 8
  %40 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %41 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %42 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %43 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %44 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %45 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %46 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %47 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %48 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %49 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  %50 = alloca %"class.__gnu_cxx::__normal_iterator.19", align 8
  %51 = alloca %"class.__gnu_cxx::__normal_iterator", align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #5
  store i64 0, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #5
  %52 = getelementptr inbounds i8, ptr %0, i64 544
  %53 = load i64, ptr %52, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #5
  store i64 0, ptr %5, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #5
  call void @_ZNSaImEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #5
  invoke void @_ZNSt6vectorImSaImEEC2EmRKmRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %53, ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %54 unwind label %105

54:                                               ; preds = %2
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #5
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #5
  %55 = getelementptr inbounds i8, ptr %0, i64 520
  %56 = load i64, ptr %55, align 8, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %8) #5
  store i64 -1, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #5
  call void @_ZNSaIlEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #5
  invoke void @_ZNSt6vectorIlSaIlEEC2EmRKlRKS0_(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %56, ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %57 unwind label %107

57:                                               ; preds = %54
  call void @_ZNSt15__new_allocatorIlED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #5
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %10) #5
  %58 = load i64, ptr %55, align 8, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #5
  store i8 0, ptr %11, align 1, !tbaa !39
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #5
  call void @_ZNSaIbEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #5
  invoke void @_ZNSt6vectorIbSaIbEEC2EmRKbRKS0_(ptr noundef nonnull align 8 dereferenceable(40) %10, i64 noundef %58, ptr noundef nonnull align 1 dereferenceable(1) %11, ptr noundef nonnull align 1 dereferenceable(1) %12)
          to label %59 unwind label %109

59:                                               ; preds = %57
  call void @_ZNSt15__new_allocatorIbED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #5
  %60 = getelementptr inbounds i8, ptr %0, i64 456
  store i64 0, ptr %60, align 8, !tbaa !40
  %61 = call noundef i64 @_ZNKSt6vectorIN4Data12cmdScheduler5transESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #5
  %.not297 = icmp eq i64 %61, 0
  br i1 %.not297, label %.preheader, label %.lr.ph292

.lr.ph292:                                        ; preds = %59
  %62 = getelementptr inbounds i8, ptr %0, i64 360
  %.sroa.269.0..sroa_idx = getelementptr inbounds i8, ptr %17, i64 8
  %.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %18, i64 8
  %63 = getelementptr inbounds i8, ptr %19, i64 8
  %64 = getelementptr inbounds i8, ptr %0, i64 552
  %.sroa.6.0..sroa_idx = getelementptr inbounds i8, ptr %22, i64 8
  %.sroa.8.0..sroa_idx = getelementptr inbounds i8, ptr %22, i64 16
  %.sroa.11.0..sroa_idx = getelementptr inbounds i8, ptr %22, i64 24
  %65 = getelementptr inbounds i8, ptr %0, i64 128
  %66 = getelementptr inbounds i8, ptr %0, i64 312
  %67 = getelementptr inbounds i8, ptr %0, i64 120
  %68 = getelementptr inbounds i8, ptr %1, i64 296
  %69 = getelementptr inbounds i8, ptr %0, i64 448
  %70 = getelementptr inbounds i8, ptr %0, i64 488
  %71 = getelementptr inbounds i8, ptr %1, i64 280
  %72 = getelementptr inbounds i8, ptr %0, i64 24
  %73 = getelementptr inbounds i8, ptr %0, i64 32
  %74 = getelementptr inbounds i8, ptr %0, i64 48
  %75 = getelementptr inbounds i8, ptr %0, i64 560
  %76 = getelementptr inbounds i8, ptr %0, i64 40
  %77 = getelementptr inbounds i8, ptr %1, i64 304
  %78 = getelementptr inbounds i8, ptr %0, i64 504
  %79 = getelementptr inbounds i8, ptr %0, i64 416
  %80 = getelementptr inbounds i8, ptr %0, i64 424
  %81 = getelementptr inbounds i8, ptr %1, i64 40
  %82 = getelementptr inbounds i8, ptr %0, i64 432
  %83 = getelementptr inbounds i8, ptr %0, i64 200
  %84 = getelementptr inbounds i8, ptr %27, i64 8
  %85 = getelementptr inbounds i8, ptr %0, i64 80
  %86 = getelementptr inbounds i8, ptr %0, i64 88
  %87 = getelementptr inbounds i8, ptr %0, i64 288
  %88 = getelementptr inbounds i8, ptr %0, i64 512
  %89 = getelementptr inbounds i8, ptr %0, i64 464
  %90 = getelementptr inbounds i8, ptr %1, i64 240
  %91 = getelementptr inbounds i8, ptr %1, i64 248
  %92 = getelementptr inbounds i8, ptr %0, i64 216
  %93 = getelementptr inbounds i8, ptr %0, i64 336
  %94 = getelementptr inbounds i8, ptr %35, i64 8
  %95 = getelementptr inbounds i8, ptr %0, i64 536
  %96 = getelementptr inbounds i8, ptr %0, i64 104
  %97 = getelementptr inbounds i8, ptr %0, i64 496
  %98 = getelementptr inbounds i8, ptr %1, i64 184
  %99 = getelementptr inbounds i8, ptr %1, i64 320
  %100 = getelementptr inbounds i8, ptr %0, i64 384
  %101 = getelementptr inbounds i8, ptr %1, i64 64
  br label %111

.preheader:                                       ; preds = %542, %59
  %102 = getelementptr inbounds i8, ptr %0, i64 384
  %103 = call noundef i64 @_ZNKSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %102) #5
  %.not300 = icmp eq i64 %103, 0
  br i1 %.not300, label %._crit_edge295, label %.lr.ph294

.lr.ph294:                                        ; preds = %.preheader
  %104 = getelementptr inbounds i8, ptr %0, i64 568
  br label %551

105:                                              ; preds = %2
  %106 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorImED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %6) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #5
  br label %592

107:                                              ; preds = %54
  %108 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIlED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #5
  br label %591

109:                                              ; preds = %57
  %110 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIbED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #5
  br label %590

111:                                              ; preds = %.lr.ph292, %542
  %.0142290 = phi i64 [ 0, %.lr.ph292 ], [ %.1143.lcssa, %542 ]
  %.0176289 = phi i64 [ 0, %.lr.ph292 ], [ %543, %542 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #5
  %112 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %62) #5
  store ptr %112, ptr %14, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN4Data12cmdScheduler11commandItemESt6vectorIS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S8_EE(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #5
  %113 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %62) #5
  store ptr %113, ptr %16, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN4Data12cmdScheduler11commandItemESt6vectorIS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S8_EE(ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %16) #5
  %114 = load ptr, ptr %13, align 8
  %115 = load ptr, ptr %15, align 8
  %116 = invoke ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS2_S4_EES9_(ptr noundef nonnull align 8 dereferenceable(24) %62, ptr %114, ptr %115)
          to label %117 unwind label %127

117:                                              ; preds = %111
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #5
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17) #5
  %118 = call { ptr, i32 } @_ZNSt6vectorIbSaIbEE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %10) #5
  %.fca.0.extract66 = extractvalue { ptr, i32 } %118, 0
  %.fca.1.extract67 = extractvalue { ptr, i32 } %118, 1
  store ptr %.fca.0.extract66, ptr %17, align 8
  store i32 %.fca.1.extract67, ptr %.sroa.269.0..sroa_idx, align 8
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) #5
  %119 = call { ptr, i32 } @_ZNSt6vectorIbSaIbEE3endEv(ptr noundef nonnull align 8 dereferenceable(40) %10) #5
  %.fca.0.extract = extractvalue { ptr, i32 } %119, 0
  %.fca.1.extract = extractvalue { ptr, i32 } %119, 1
  store ptr %.fca.0.extract, ptr %18, align 8
  store i32 %.fca.1.extract, ptr %.sroa.2.0..sroa_idx, align 8
  br label %120

120:                                              ; preds = %133, %117
  %121 = invoke noundef zeroext i1 @_ZStneRKSt18_Bit_iterator_baseS1_(ptr noundef nonnull align 8 dereferenceable(12) %17, ptr noundef nonnull align 8 dereferenceable(12) %18)
          to label %122 unwind label %129

122:                                              ; preds = %120
  br i1 %121, label %131, label %123

123:                                              ; preds = %122
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #5
  %124 = call ptr @_ZNSt6vectorIlSaIlEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #5
  store ptr %124, ptr %20, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #5
  %125 = call ptr @_ZNSt6vectorIlSaIlEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %7) #5
  store ptr %125, ptr %21, align 8
  %126 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPlSt6vectorIlSaIlEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %21) #5
  br i1 %126, label %.lr.ph, label %._crit_edge

127:                                              ; preds = %111
  %128 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #5
  br label %589

129:                                              ; preds = %133, %120
  %130 = landingpad { ptr, i32 }
          cleanup
  br label %140

131:                                              ; preds = %122
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %19) #5
  %132 = invoke { ptr, i64 } @_ZNKSt13_Bit_iteratordeEv(ptr noundef nonnull align 8 dereferenceable(12) %17)
          to label %133 unwind label %138

133:                                              ; preds = %131
  %134 = extractvalue { ptr, i64 } %132, 0
  store ptr %134, ptr %19, align 8
  %135 = extractvalue { ptr, i64 } %132, 1
  store i64 %135, ptr %63, align 8
  %136 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %19, i1 noundef zeroext false) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #5
  %137 = invoke noundef nonnull align 8 dereferenceable(12) ptr @_ZNSt13_Bit_iteratorppEv(ptr noundef nonnull align 8 dereferenceable(12) %17)
          to label %120 unwind label %129

138:                                              ; preds = %131
  %139 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %19) #5
  br label %140

140:                                              ; preds = %138, %129
  %.pn210 = phi { ptr, i32 } [ %130, %129 ], [ %139, %138 ]
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) #5
  br label %589

._crit_edge:                                      ; preds = %.lr.ph, %123
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #5
  store i8 0, ptr %64, align 8, !tbaa !41
  %141 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN4Data12cmdScheduler5transESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.0176289) #5
  %142 = getelementptr inbounds i8, ptr %141, i64 8
  %143 = load i64, ptr %142, align 8, !tbaa !42
  store i64 %143, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #5
  %144 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN4Data12cmdScheduler5transESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.0176289) #5
  invoke void @_ZN4Data12cmdScheduler9memoryMapENS0_5transERKNS_19MemorySpecificationE(ptr dead_on_unwind nonnull writable sret(%"class.Data::cmdScheduler::physicalAddr") align 8 %22, ptr noundef nonnull align 8 dereferenceable(1080) %0, ptr noundef nonnull byval(%"class.Data::cmdScheduler::trans") align 8 %144, ptr noundef nonnull align 8 dereferenceable(736) %1)
          to label %148 unwind label %162

.lr.ph:                                           ; preds = %123, %.lr.ph
  %145 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPlSt6vectorIlSaIlEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #5
  store i64 -1, ptr %145, align 8, !tbaa !5
  %146 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPlSt6vectorIlSaIlEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #5
  %147 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPlSt6vectorIlSaIlEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %21) #5
  br i1 %147, label %.lr.ph, label %._crit_edge

148:                                              ; preds = %._crit_edge
  %.sroa.0111.0.copyload = load i64, ptr %22, align 8, !tbaa !5
  %.sroa.6.0.copyload = load i64, ptr %.sroa.6.0..sroa_idx, align 8, !tbaa !5
  %.sroa.8.0.copyload = load i64, ptr %.sroa.8.0..sroa_idx, align 8, !tbaa !5
  %.sroa.11.0.copyload = load i64, ptr %.sroa.11.0..sroa_idx, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #5
  %149 = call ptr @_ZNSt6vectorImSaImEE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #5
  store ptr %149, ptr %23, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #5
  %150 = call ptr @_ZNSt6vectorImSaImEE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #5
  store ptr %150, ptr %24, align 8
  %151 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPmSt6vectorImSaImEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %24) #5
  br i1 %151, label %.lr.ph255, label %._crit_edge256

._crit_edge256:                                   ; preds = %.lr.ph255, %148
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #5
  %152 = load i64, ptr %67, align 8, !tbaa !44
  %153 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %66, i64 noundef %152) #5
  %154 = getelementptr inbounds i8, ptr %153, i64 16
  %155 = load i64, ptr %154, align 8, !tbaa !45
  %156 = load i64, ptr %68, align 8, !tbaa !46
  %sext = shl i64 %156, 32
  %157 = ashr exact i64 %sext, 32
  %158 = add nsw i64 %157, %155
  store i64 %158, ptr %25, align 8, !tbaa !5
  %159 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef nonnull align 8 dereferenceable(8) %25)
  %160 = load i64, ptr %159, align 8, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #5
  %161 = load i64, ptr %69, align 8, !tbaa !49
  switch i64 %161, label %172 [
    i64 2, label %.invoke
    i64 1, label %169
  ]

162:                                              ; preds = %._crit_edge
  %163 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #5
  br label %589

.lr.ph255:                                        ; preds = %148, %.lr.ph255
  %164 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %23) #5
  store i64 %.sroa.6.0.copyload, ptr %164, align 8, !tbaa !5
  %165 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %23) #5
  %166 = call noundef zeroext i1 @_ZN9__gnu_cxxneIPmSt6vectorImSaImEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %24) #5
  br i1 %166, label %.lr.ph255, label %._crit_edge256

167:                                              ; preds = %.invoke
  %168 = landingpad { ptr, i32 }
          cleanup
  br label %589

169:                                              ; preds = %._crit_edge256
  %170 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(8) %70)
  br label %.invoke

.invoke:                                          ; preds = %._crit_edge256, %169
  %.in = phi ptr [ %170, %169 ], [ %3, %._crit_edge256 ]
  %171 = load i64, ptr %.in, align 8, !tbaa !5
  invoke void @_ZN4Data12cmdScheduler12pdSchedulingEllRKNS_19MemorySpecificationE(ptr noundef nonnull align 8 dereferenceable(1080) %0, i64 noundef %160, i64 noundef %171, ptr noundef nonnull align 8 dereferenceable(736) %1)
          to label %172 unwind label %167

172:                                              ; preds = %.invoke, %._crit_edge256
  %173 = load i64, ptr %70, align 8, !tbaa !50
  %174 = load i64, ptr %65, align 8, !tbaa !51
  %.not = icmp slt i64 %174, %173
  %175 = load i64, ptr %3, align 8
  %.not191 = icmp slt i64 %175, %173
  %or.cond217 = select i1 %.not, i1 %.not191, i1 false
  br i1 %or.cond217, label %.loopexit227, label %.preheader226

.preheader226:                                    ; preds = %172, %216
  %176 = phi i64 [ %.pre, %216 ], [ %175, %172 ]
  %.0175 = phi i64 [ %217, %216 ], [ 0, %172 ]
  %177 = sub nsw i64 %176, %173
  %178 = icmp sgt i64 %177, 0
  br i1 %178, label %179, label %182

179:                                              ; preds = %.preheader226
  %180 = load i64, ptr %71, align 8, !tbaa !52
  %181 = sdiv i64 %177, %180
  br label %182

182:                                              ; preds = %.preheader226, %179
  %183 = phi i64 [ %181, %179 ], [ 0, %.preheader226 ]
  %.not192 = icmp sgt i64 %.0175, %183
  br i1 %.not192, label %.loopexit227, label %184

184:                                              ; preds = %182
  store i64 0, ptr %73, align 8, !tbaa !53
  %185 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull @.str.7)
          to label %186 unwind label %204

186:                                              ; preds = %184
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #5
  %187 = load i64, ptr %67, align 8, !tbaa !44
  %188 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %66, i64 noundef %187) #5
  %189 = getelementptr inbounds i8, ptr %188, i64 16
  %190 = load i64, ptr %189, align 8, !tbaa !45
  %191 = load i64, ptr %68, align 8, !tbaa !46
  %192 = add nsw i64 %191, %190
  store i64 %192, ptr %26, align 8, !tbaa !5
  %193 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %65, ptr noundef nonnull align 8 dereferenceable(8) %26)
  %194 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %193, ptr noundef nonnull align 8 dereferenceable(8) %70)
  %195 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %194, ptr noundef nonnull align 8 dereferenceable(8) %75)
  %196 = load i64, ptr %195, align 8, !tbaa !5
  store i64 %196, ptr %76, align 8, !tbaa !54
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #5
  %197 = load i64, ptr %69, align 8
  %198 = icmp eq i64 %197, 2
  %199 = load i64, ptr %60, align 8
  %.not207 = icmp ne i64 %199, 0
  %or.cond219 = select i1 %198, i1 %.not207, i1 false
  br i1 %or.cond219, label %.thread, label %203

.thread:                                          ; preds = %186
  %200 = load i64, ptr %70, align 8, !tbaa !50
  %201 = load i64, ptr %71, align 8, !tbaa !52
  %202 = add nsw i64 %201, %200
  store i64 %202, ptr %70, align 8, !tbaa !50
  br label %216

203:                                              ; preds = %186
  invoke void @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %62, ptr noundef nonnull align 8 dereferenceable(88) %72)
          to label %206 unwind label %204

204:                                              ; preds = %213, %203, %184
  %205 = landingpad { ptr, i32 }
          cleanup
  br label %589

206:                                              ; preds = %203
  %207 = load i64, ptr %76, align 8, !tbaa !54
  %208 = load i64, ptr %77, align 8, !tbaa !55
  %209 = add nsw i64 %208, %207
  store i64 %209, ptr %75, align 8, !tbaa !56
  %.pr = load i64, ptr %60, align 8, !tbaa !40
  %210 = load i64, ptr %70, align 8, !tbaa !50
  %211 = load i64, ptr %71, align 8, !tbaa !52
  %212 = add nsw i64 %211, %210
  store i64 %212, ptr %70, align 8, !tbaa !50
  %.not209 = icmp eq i64 %.pr, 0
  br i1 %.not209, label %213, label %216

213:                                              ; preds = %206
  %214 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3minIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %3, ptr noundef nonnull align 8 dereferenceable(8) %70)
  %215 = load i64, ptr %214, align 8, !tbaa !5
  invoke void @_ZN4Data12cmdScheduler12pdSchedulingEllRKNS_19MemorySpecificationE(ptr noundef nonnull align 8 dereferenceable(1080) %0, i64 noundef %160, i64 noundef %215, ptr noundef nonnull align 8 dereferenceable(736) %1)
          to label %216 unwind label %204

216:                                              ; preds = %.thread, %206, %213
  %217 = add nuw nsw i64 %.0175, 1
  %.pre = load i64, ptr %3, align 8, !tbaa !5
  br label %.preheader226, !llvm.loop !57

.loopexit227:                                     ; preds = %182, %172
  %218 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIN4Data12cmdScheduler5transESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %.0176289) #5
  %219 = load i64, ptr %218, align 8, !tbaa !59
  %220 = invoke noundef i64 @_ZN4Data12cmdScheduler7getRWTPElRKNS_19MemorySpecificationE(ptr noundef nonnull align 8 dereferenceable(1080) %0, i64 noundef %219, ptr noundef nonnull align 8 dereferenceable(736) %1)
          to label %221 unwind label %233

221:                                              ; preds = %.loopexit227
  store i64 %220, ptr %78, align 8, !tbaa !60
  %222 = load i64, ptr %79, align 8, !tbaa !61
  %223 = icmp sgt i64 %222, 0
  %224 = load i64, ptr %80, align 8
  %225 = icmp sgt i64 %224, 0
  %or.cond356 = select i1 %223, i1 %225, i1 false
  br i1 %or.cond356, label %.preheader223, label %._crit_edge278

.preheader223:                                    ; preds = %221, %._crit_edge272
  %226 = phi i64 [ %235, %._crit_edge272 ], [ %222, %221 ]
  %227 = phi i64 [ %236, %._crit_edge272 ], [ %224, %221 ]
  %indvars.iv325 = phi i64 [ %indvars.iv.next326, %._crit_edge272 ], [ 0, %221 ]
  %.0141277 = phi i64 [ %.1.lcssa, %._crit_edge272 ], [ %.sroa.8.0.copyload, %221 ]
  %.1143276 = phi i64 [ %.2144.lcssa, %._crit_edge272 ], [ %.0142290, %221 ]
  %228 = icmp sgt i64 %227, 0
  br i1 %228, label %.lr.ph271, label %._crit_edge272

.lr.ph271:                                        ; preds = %.preheader223
  %229 = add i64 %indvars.iv325, %.sroa.6.0.copyload
  br label %238

._crit_edge278:                                   ; preds = %._crit_edge272, %221
  %.1143.lcssa = phi i64 [ %.0142290, %221 ], [ %.2144.lcssa, %._crit_edge272 ]
  %230 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %62) #5
  %231 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %62) #5
  invoke void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN4Data12cmdScheduler11commandItemESt6vectorIS4_SaIS4_EEEENS4_17commandItemSorterEEvT_SB_T0_(ptr %230, ptr %231)
          to label %.preheader225 unwind label %233

.preheader225:                                    ; preds = %._crit_edge278
  %232 = call noundef i64 @_ZNKSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %62) #5
  %.not299 = icmp eq i64 %232, 0
  br i1 %.not299, label %._crit_edge284, label %.lr.ph283

233:                                              ; preds = %._crit_edge278, %.loopexit227
  %234 = landingpad { ptr, i32 }
          cleanup
  br label %589

._crit_edge272.loopexit:                          ; preds = %._crit_edge266
  %.pre338 = load i64, ptr %79, align 8, !tbaa !61
  br label %._crit_edge272

._crit_edge272:                                   ; preds = %._crit_edge272.loopexit, %.preheader223
  %235 = phi i64 [ %226, %.preheader223 ], [ %.pre338, %._crit_edge272.loopexit ]
  %236 = phi i64 [ %227, %.preheader223 ], [ %243, %._crit_edge272.loopexit ]
  %.2144.lcssa = phi i64 [ %.1143276, %.preheader223 ], [ %.3145.lcssa, %._crit_edge272.loopexit ]
  %.1.lcssa = phi i64 [ %.0141277, %.preheader223 ], [ %.3.lcssa, %._crit_edge272.loopexit ]
  %indvars.iv.next326 = add nuw nsw i64 %indvars.iv325, 1
  %237 = icmp sgt i64 %235, %indvars.iv.next326
  br i1 %237, label %.preheader223, label %._crit_edge278, !llvm.loop !62

238:                                              ; preds = %.lr.ph271, %._crit_edge266
  %indvars.iv321 = phi i64 [ 0, %.lr.ph271 ], [ %indvars.iv.next322, %._crit_edge266 ]
  %.1270 = phi i64 [ %.0141277, %.lr.ph271 ], [ %.3.lcssa, %._crit_edge266 ]
  %.2144269 = phi i64 [ %.1143276, %.lr.ph271 ], [ %.3145.lcssa, %._crit_edge266 ]
  %239 = call noundef i32 @_ZNK4Data10MemoryTypecvNS0_12MemoryType_tEEv(ptr noundef nonnull align 4 dereferenceable(4) %81)
  %240 = icmp eq i32 %239, 2
  %spec.select = select i1 %240, i64 %.sroa.8.0.copyload, i64 %.1270
  %241 = load i64, ptr %82, align 8, !tbaa !64
  %242 = icmp sgt i64 %241, 0
  br i1 %242, label %.lr.ph265, label %._crit_edge266

._crit_edge266:                                   ; preds = %478, %238
  %.3145.lcssa = phi i64 [ %.2144269, %238 ], [ %.4, %478 ]
  %.3.lcssa = phi i64 [ %spec.select, %238 ], [ %479, %478 ]
  %indvars.iv.next322 = add nuw nsw i64 %indvars.iv321, 1
  %243 = load i64, ptr %80, align 8, !tbaa !65
  %244 = icmp sgt i64 %243, %indvars.iv.next322
  br i1 %244, label %238, label %._crit_edge272.loopexit, !llvm.loop !66

.lr.ph265:                                        ; preds = %238, %478
  %indvars.iv317 = phi i64 [ %indvars.iv.next318, %478 ], [ 0, %238 ]
  %.3263 = phi i64 [ %479, %478 ], [ %spec.select, %238 ]
  %.3145262 = phi i64 [ %.4, %478 ], [ %.2144269, %238 ]
  %245 = call noundef i32 @_ZNK4Data10MemoryTypecvNS0_12MemoryType_tEEv(ptr noundef nonnull align 4 dereferenceable(4) %81)
  %246 = icmp eq i32 %245, 2
  br i1 %246, label %247, label %258

247:                                              ; preds = %.lr.ph265
  %.not196 = icmp ne i64 %.3263, %.3145262
  %248 = add i64 %indvars.iv317, %.sroa.8.0.copyload
  %249 = load i64, ptr %55, align 8, !tbaa !38
  %250 = mul i64 %249, %248
  %251 = load i64, ptr %52, align 8, !tbaa !9
  %252 = udiv i64 %250, %251
  %253 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %248) #5
  %254 = load i64, ptr %253, align 8, !tbaa !5
  %255 = add i64 %254, %252
  br label %258

256:                                              ; preds = %.invoke353, %.invoke352, %441, %436, %432, %430, %369, %.loopexit222, %269, %261
  %257 = landingpad { ptr, i32 }
          cleanup
  br label %589

258:                                              ; preds = %.lr.ph265, %247
  %.0167 = phi i64 [ %255, %247 ], [ %229, %.lr.ph265 ]
  %.1149 = phi i1 [ %.not196, %247 ], [ false, %.lr.ph265 ]
  %.4 = phi i64 [ %248, %247 ], [ %.3145262, %.lr.ph265 ]
  %259 = load i8, ptr %64, align 8, !tbaa !41, !range !67, !noundef !68
  %260 = trunc nuw i8 %259 to i1
  br i1 %260, label %263, label %261

261:                                              ; preds = %258
  %262 = load i64, ptr %83, align 8, !tbaa !69
  invoke void @_ZN4Data12cmdScheduler20getTimingConstraintsEbRKNS_19MemorySpecificationEll(ptr noundef nonnull align 8 dereferenceable(1080) %0, i1 noundef zeroext %.1149, ptr noundef nonnull align 8 dereferenceable(736) %1, i64 noundef %262, i64 noundef %219)
          to label %263 unwind label %256

263:                                              ; preds = %261, %258
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %27) #5
  %264 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %10, i64 noundef %.0167)
          to label %265 unwind label %325

265:                                              ; preds = %263
  %266 = extractvalue { ptr, i64 } %264, 0
  store ptr %266, ptr %27, align 8
  %267 = extractvalue { ptr, i64 } %264, 1
  store i64 %267, ptr %84, align 8
  %268 = call noundef zeroext i1 @_ZNKSt14_Bit_referencecvbEv(ptr noundef nonnull align 8 dereferenceable(16) %27) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #5
  br i1 %268, label %382, label %269

269:                                              ; preds = %265
  store i64 %.0167, ptr %73, align 8, !tbaa !53
  store i64 %.0167, ptr %86, align 8, !tbaa !70
  store i64 %.sroa.0111.0.copyload, ptr %85, align 8, !tbaa !71
  store i64 2, ptr %72, align 8, !tbaa !72
  %270 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull @.str.3)
          to label %271 unwind label %256

271:                                              ; preds = %269
  store i64 0, ptr %60, align 8, !tbaa !40
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %28) #5
  %272 = load i64, ptr %88, align 8, !tbaa !73
  %273 = add nsw i64 %272, -1
  %274 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef %273) #5
  %275 = getelementptr inbounds i8, ptr %274, i64 16
  %276 = load i64, ptr %275, align 8, !tbaa !45
  %277 = load i64, ptr %89, align 8, !tbaa !74
  %278 = add nsw i64 %277, %276
  store i64 %278, ptr %28, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #5
  %279 = load i64, ptr %73, align 8, !tbaa !53
  %280 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %66, i64 noundef %279) #5
  %281 = getelementptr inbounds i8, ptr %280, i64 16
  %282 = load i64, ptr %281, align 8, !tbaa !45
  %283 = load i64, ptr %68, align 8, !tbaa !46
  %sext197 = shl i64 %283, 32
  %284 = ashr exact i64 %sext197, 32
  %285 = add nsw i64 %284, %282
  store i64 %285, ptr %29, align 8, !tbaa !5
  %286 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %29)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #5
  %287 = load i64, ptr %88, align 8, !tbaa !73
  %288 = add nsw i64 %287, -4
  %289 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef %288) #5
  %290 = getelementptr inbounds i8, ptr %289, i64 16
  %291 = load i64, ptr %290, align 8, !tbaa !45
  %292 = load i64, ptr %90, align 8, !tbaa !75
  %sext198 = shl i64 %292, 32
  %293 = ashr exact i64 %sext198, 32
  %294 = add nsw i64 %293, %291
  store i64 %294, ptr %30, align 8, !tbaa !5
  %295 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %286, ptr noundef nonnull align 8 dereferenceable(8) %30)
  %296 = load i64, ptr %295, align 8, !tbaa !5
  store i64 %296, ptr %76, align 8, !tbaa !54
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %28) #5
  %297 = call noundef i32 @_ZNK4Data10MemoryTypecvNS0_12MemoryType_tEEv(ptr noundef nonnull align 4 dereferenceable(4) %81)
  %298 = icmp eq i32 %297, 6
  br i1 %298, label %299, label %327

299:                                              ; preds = %271
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %31) #5
  %300 = load i64, ptr %88, align 8, !tbaa !73
  %301 = add nsw i64 %300, -1
  %302 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef %301) #5
  %303 = getelementptr inbounds i8, ptr %302, i64 16
  %304 = load i64, ptr %303, align 8, !tbaa !45
  %305 = load i64, ptr %89, align 8, !tbaa !74
  %306 = add nsw i64 %305, %304
  store i64 %306, ptr %31, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %32) #5
  %307 = load i64, ptr %73, align 8, !tbaa !53
  %308 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %66, i64 noundef %307) #5
  %309 = getelementptr inbounds i8, ptr %308, i64 16
  %310 = load i64, ptr %309, align 8, !tbaa !45
  %311 = load i64, ptr %68, align 8, !tbaa !46
  %sext199 = shl i64 %311, 32
  %312 = ashr exact i64 %sext199, 32
  %313 = add nsw i64 %312, %310
  store i64 %313, ptr %32, align 8, !tbaa !5
  %314 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %31, ptr noundef nonnull align 8 dereferenceable(8) %32)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #5
  %315 = load i64, ptr %88, align 8, !tbaa !73
  %316 = add nsw i64 %315, -2
  %317 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef %316) #5
  %318 = getelementptr inbounds i8, ptr %317, i64 16
  %319 = load i64, ptr %318, align 8, !tbaa !45
  %320 = load i64, ptr %91, align 8, !tbaa !76
  %sext200 = shl i64 %320, 32
  %321 = ashr exact i64 %sext200, 32
  %322 = add nsw i64 %321, %319
  store i64 %322, ptr %33, align 8, !tbaa !5
  %323 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %314, ptr noundef nonnull align 8 dereferenceable(8) %33)
  %324 = load i64, ptr %323, align 8, !tbaa !5
  store i64 %324, ptr %76, align 8, !tbaa !54
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %32) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %31) #5
  br label %327

325:                                              ; preds = %263
  %326 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %27) #5
  br label %589

327:                                              ; preds = %299, %271
  %328 = or i64 %indvars.iv317, %indvars.iv325
  %329 = and i64 %328, 4294967295
  %or.cond = icmp eq i64 %329, 0
  br i1 %or.cond, label %330, label %339

330:                                              ; preds = %327
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %34) #5
  %331 = load i64, ptr %92, align 8, !tbaa !77
  %332 = add nsw i64 %331, 1
  store i64 %332, ptr %34, align 8, !tbaa !5
  %333 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %76, ptr noundef nonnull align 8 dereferenceable(8) %34)
  %334 = load i64, ptr %333, align 8, !tbaa !5
  store i64 %334, ptr %76, align 8, !tbaa !54
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %34) #5
  %335 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %76, ptr noundef nonnull align 8 dereferenceable(8) %3)
  %336 = load i64, ptr %335, align 8, !tbaa !5
  store i64 %336, ptr %76, align 8, !tbaa !54
  %337 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %75, ptr noundef nonnull align 8 dereferenceable(8) %76)
  %338 = load i64, ptr %337, align 8, !tbaa !5
  store i64 %338, ptr %76, align 8, !tbaa !54
  br label %339

339:                                              ; preds = %330, %327
  %340 = load i64, ptr %82, align 8, !tbaa !64
  %341 = mul nsw i64 %340, %indvars.iv325
  %342 = add nsw i64 %341, %indvars.iv317
  %.not201259 = icmp slt i64 %342, 1
  br i1 %.not201259, label %.loopexit222, label %.preheader220

.preheader220:                                    ; preds = %339, %.critedge
  %indvars.iv = phi i64 [ %indvars.iv.next, %.critedge ], [ 1, %339 ]
  %343 = load i64, ptr %88, align 8, !tbaa !73
  %344 = sub nsw i64 %343, %indvars.iv
  %345 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %93, i64 noundef %344) #5
  %346 = call noundef i64 @_ZNKSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %345) #5
  %.not298 = icmp eq i64 %346, 0
  br i1 %.not298, label %.critedge, label %.lr.ph258

347:                                              ; preds = %.lr.ph258
  %348 = add i32 %.0170257, 1
  %349 = zext i32 %348 to i64
  %350 = load i64, ptr %88, align 8, !tbaa !73
  %351 = sub nsw i64 %350, %indvars.iv
  %352 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %93, i64 noundef %351) #5
  %353 = call noundef i64 @_ZNKSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %352) #5
  %354 = icmp ugt i64 %353, %349
  br i1 %354, label %.lr.ph258, label %.critedge, !llvm.loop !78

.lr.ph258:                                        ; preds = %.preheader220, %347
  %355 = phi i64 [ %349, %347 ], [ 0, %.preheader220 ]
  %.0170257 = phi i32 [ %348, %347 ], [ 0, %.preheader220 ]
  %356 = load i64, ptr %88, align 8, !tbaa !73
  %357 = sub nsw i64 %356, %indvars.iv
  %358 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %93, i64 noundef %357) #5
  %359 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %358, i64 noundef %355) #5
  %360 = getelementptr inbounds i8, ptr %359, i64 16
  %361 = load i64, ptr %360, align 8, !tbaa !45
  %362 = load i64, ptr %76, align 8, !tbaa !54
  %363 = icmp eq i64 %361, %362
  br i1 %363, label %364, label %347

364:                                              ; preds = %.lr.ph258
  %365 = add nsw i64 %361, 1
  store i64 %365, ptr %76, align 8, !tbaa !54
  br label %.loopexit222

.critedge:                                        ; preds = %347, %.preheader220
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %366 = load i64, ptr %82, align 8, !tbaa !64
  %367 = mul nsw i64 %366, %indvars.iv325
  %368 = add nsw i64 %367, %indvars.iv317
  %.not201.not = icmp sgt i64 %368, %indvars.iv
  br i1 %.not201.not, label %.preheader220, label %.loopexit222, !llvm.loop !79

.loopexit222:                                     ; preds = %.critedge, %339, %364
  invoke void @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %87, ptr noundef nonnull align 8 dereferenceable(88) %72)
          to label %369 unwind label %256

369:                                              ; preds = %.loopexit222
  invoke void @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %62, ptr noundef nonnull align 8 dereferenceable(88) %72)
          to label %370 unwind label %256

370:                                              ; preds = %369
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %35) #5
  %371 = invoke { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40) %10, i64 noundef %.0167)
          to label %372 unwind label %380

372:                                              ; preds = %370
  %373 = extractvalue { ptr, i64 } %371, 0
  store ptr %373, ptr %35, align 8
  %374 = extractvalue { ptr, i64 } %371, 1
  store i64 %374, ptr %94, align 8
  %375 = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt14_Bit_referenceaSEb(ptr noundef nonnull align 8 dereferenceable(16) %35, i1 noundef zeroext true) #5
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #5
  %376 = load i64, ptr %88, align 8, !tbaa !73
  %377 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %.0167) #5
  store i64 %376, ptr %377, align 8, !tbaa !5
  %378 = load i64, ptr %88, align 8, !tbaa !73
  %379 = add nsw i64 %378, 1
  store i64 %379, ptr %88, align 8, !tbaa !73
  br label %382

380:                                              ; preds = %370
  %381 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %35) #5
  br label %589

382:                                              ; preds = %372, %265
  store i64 %.0167, ptr %73, align 8, !tbaa !53
  store i64 %.0167, ptr %86, align 8, !tbaa !70
  store i64 %.sroa.0111.0.copyload, ptr %85, align 8, !tbaa !71
  %383 = load i64, ptr %95, align 8, !tbaa !80
  %384 = mul nsw i64 %383, %indvars.iv321
  %385 = add i64 %384, %.sroa.11.0.copyload
  store i64 %385, ptr %96, align 8, !tbaa !81
  store i64 %219, ptr %72, align 8, !tbaa !72
  switch i64 %219, label %389 [
    i64 0, label %.invoke353
    i64 1, label %386
  ]

386:                                              ; preds = %382
  br label %.invoke353

.invoke353:                                       ; preds = %382, %386
  %387 = phi ptr [ @.str.8, %386 ], [ @.str.5, %382 ]
  %388 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull %387)
          to label %389 unwind label %256

389:                                              ; preds = %.invoke353, %382
  %390 = call noundef i64 @_ZNKSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %87) #5
  %391 = and i64 %390, 4294967295
  br label %392

392:                                              ; preds = %395, %389
  %indvars.iv310 = phi i64 [ %indvars.iv.next311, %395 ], [ %391, %389 ]
  %indvars.iv.next311 = add nsw i64 %indvars.iv310, -1
  %393 = and i64 %indvars.iv.next311, 2147483648
  %394 = icmp eq i64 %393, 0
  br i1 %394, label %395, label %.loopexit221

395:                                              ; preds = %392
  %396 = and i64 %indvars.iv.next311, 2147483647
  %397 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef %396) #5
  %398 = getelementptr inbounds i8, ptr %397, i64 8
  %399 = load i64, ptr %398, align 8, !tbaa !82
  %400 = icmp eq i64 %399, %.0167
  br i1 %400, label %401, label %392, !llvm.loop !83

401:                                              ; preds = %395
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %36) #5
  %402 = load i64, ptr %92, align 8, !tbaa !77
  %403 = load i64, ptr %97, align 8, !tbaa !84
  %404 = add nsw i64 %403, %402
  store i64 %404, ptr %36, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #5
  %405 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %87) #5
  %406 = getelementptr inbounds i8, ptr %405, i64 16
  %407 = load i64, ptr %406, align 8, !tbaa !45
  %408 = load i64, ptr %98, align 8, !tbaa !85
  %sext202 = shl i64 %408, 32
  %409 = ashr exact i64 %sext202, 32
  %410 = add nsw i64 %409, %407
  store i64 %410, ptr %37, align 8, !tbaa !5
  %411 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %36, ptr noundef nonnull align 8 dereferenceable(8) %37)
  %412 = load i64, ptr %411, align 8, !tbaa !5
  store i64 %412, ptr %76, align 8, !tbaa !54
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %36) #5
  br label %.loopexit221

.loopexit221:                                     ; preds = %392, %401
  %413 = load i64, ptr %79, align 8, !tbaa !61
  %414 = add nsw i64 %413, -1
  %415 = icmp eq i64 %414, %indvars.iv325
  %.pre337 = load i64, ptr %80, align 8, !tbaa !65
  %416 = add nsw i64 %.pre337, -1
  %417 = icmp eq i64 %416, %indvars.iv321
  %or.cond354 = select i1 %415, i1 %417, i1 false
  br i1 %or.cond354, label %418, label %.loopexit221._crit_edge

418:                                              ; preds = %.loopexit221
  %419 = load i64, ptr %82, align 8, !tbaa !64
  %420 = add nsw i64 %419, -1
  %421 = icmp eq i64 %420, %indvars.iv317
  br i1 %421, label %422, label %.loopexit221._crit_edge

422:                                              ; preds = %418
  %423 = load i64, ptr %76, align 8, !tbaa !54
  %424 = add nsw i64 %423, 1
  store i64 %424, ptr %65, align 8, !tbaa !51
  store i64 %.0167, ptr %67, align 8, !tbaa !44
  br label %.loopexit221._crit_edge

.loopexit221._crit_edge:                          ; preds = %.loopexit221, %422, %418
  %425 = icmp eq i64 %416, %indvars.iv321
  br i1 %425, label %426, label %430

426:                                              ; preds = %.loopexit221._crit_edge
  switch i64 %219, label %430 [
    i64 0, label %.invoke352
    i64 1, label %427
  ]

427:                                              ; preds = %426
  br label %.invoke352

.invoke352:                                       ; preds = %426, %427
  %428 = phi ptr [ @.str.10, %427 ], [ @.str.9, %426 ]
  %429 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %74, ptr noundef nonnull %428)
          to label %430 unwind label %256

430:                                              ; preds = %.invoke352, %426, %.loopexit221._crit_edge
  %431 = invoke noundef nonnull align 8 dereferenceable(88) ptr @_ZN4Data12cmdScheduler11commandItemaSERKS1_(ptr noundef nonnull align 8 dereferenceable(88) %83, ptr noundef nonnull align 8 dereferenceable(88) %72)
          to label %432 unwind label %256

432:                                              ; preds = %430
  %433 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIlSaIlEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %7, i64 noundef %.0167) #5
  %434 = load i64, ptr %433, align 8, !tbaa !5
  %435 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %93, i64 noundef %434) #5
  invoke void @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %435, ptr noundef nonnull align 8 dereferenceable(88) %72)
          to label %436 unwind label %256

436:                                              ; preds = %432
  invoke void @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %62, ptr noundef nonnull align 8 dereferenceable(88) %72)
          to label %437 unwind label %256

437:                                              ; preds = %436
  %438 = load i64, ptr %80, align 8, !tbaa !65
  %439 = add nsw i64 %438, -1
  %440 = icmp eq i64 %439, %indvars.iv321
  br i1 %440, label %441, label %478

441:                                              ; preds = %437
  %442 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %66, i64 noundef %.0167) #5
  %443 = getelementptr inbounds i8, ptr %442, i64 8
  store i64 %.0167, ptr %443, align 8, !tbaa !82
  %444 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %66, i64 noundef %.0167) #5
  store i64 3, ptr %444, align 8, !tbaa !86
  %445 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %66, i64 noundef %.0167) #5
  %446 = getelementptr inbounds i8, ptr %445, i64 24
  %447 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %446, ptr noundef nonnull @.str.1)
          to label %448 unwind label %256

448:                                              ; preds = %441
  %449 = call noundef i64 @_ZNKSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %87) #5
  %450 = and i64 %449, 4294967295
  br label %451

451:                                              ; preds = %454, %448
  %indvars.iv313 = phi i64 [ %indvars.iv.next314, %454 ], [ %450, %448 ]
  %indvars.iv.next314 = add nsw i64 %indvars.iv313, -1
  %452 = and i64 %indvars.iv.next314, 2147483648
  %453 = icmp eq i64 %452, 0
  br i1 %453, label %454, label %.loopexit

454:                                              ; preds = %451
  %455 = and i64 %indvars.iv.next314, 2147483647
  %456 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %87, i64 noundef %455) #5
  %457 = getelementptr inbounds i8, ptr %456, i64 8
  %458 = load i64, ptr %457, align 8, !tbaa !82
  %459 = icmp eq i64 %458, %.0167
  br i1 %459, label %460, label %451, !llvm.loop !87

460:                                              ; preds = %454
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) #5
  %461 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %87) #5
  %462 = getelementptr inbounds i8, ptr %461, i64 16
  %463 = load i64, ptr %462, align 8, !tbaa !45
  %464 = load i64, ptr %99, align 8, !tbaa !88
  %sext206 = shl i64 %464, 32
  %465 = ashr exact i64 %sext206, 32
  %466 = add nsw i64 %465, %463
  store i64 %466, ptr %38, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) #5
  %467 = load i64, ptr %92, align 8, !tbaa !77
  %468 = load i64, ptr %78, align 8, !tbaa !60
  %469 = add nsw i64 %468, %467
  store i64 %469, ptr %39, align 8, !tbaa !5
  %470 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(ptr noundef nonnull align 8 dereferenceable(8) %38, ptr noundef nonnull align 8 dereferenceable(8) %39)
  %471 = load i64, ptr %470, align 8, !tbaa !5
  %472 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %66, i64 noundef %.0167) #5
  %473 = getelementptr inbounds i8, ptr %472, i64 16
  store i64 %471, ptr %473, align 8, !tbaa !45
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %39) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %38) #5
  br label %.loopexit

.loopexit:                                        ; preds = %451, %460
  %474 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %.4) #5
  %475 = load i64, ptr %474, align 8, !tbaa !5
  %476 = add i64 %475, 1
  %477 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorImSaImEEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef %.4) #5
  store i64 %476, ptr %477, align 8, !tbaa !5
  br label %478

478:                                              ; preds = %.loopexit, %437
  %479 = add i64 %.3263, 1
  %indvars.iv.next318 = add nuw nsw i64 %indvars.iv317, 1
  %480 = load i64, ptr %82, align 8, !tbaa !64
  %481 = icmp sgt i64 %480, %indvars.iv.next318
  br i1 %481, label %.lr.ph265, label %._crit_edge266, !llvm.loop !89

._crit_edge284:                                   ; preds = %490, %.preheader225
  %482 = call noundef i64 @_ZNKSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %87) #5
  %483 = load i64, ptr %101, align 8, !tbaa !90
  %.not193 = icmp ult i64 %482, %483
  br i1 %.not193, label %542, label %.preheader224

.preheader224:                                    ; preds = %._crit_edge284
  %484 = load i64, ptr %79, align 8, !tbaa !61
  %485 = load i64, ptr %82, align 8, !tbaa !64
  %486 = mul nsw i64 %485, %484
  %487 = icmp sgt i64 %486, 0
  br i1 %487, label %.lr.ph286, label %.preheader224.._crit_edge287_crit_edge

.preheader224.._crit_edge287_crit_edge:           ; preds = %.preheader224
  %.pre339 = load i64, ptr %88, align 8, !tbaa !73
  br label %._crit_edge287

.lr.ph283:                                        ; preds = %.preheader225, %490
  %488 = phi i64 [ %492, %490 ], [ 0, %.preheader225 ]
  %.0156282 = phi i32 [ %491, %490 ], [ 0, %.preheader225 ]
  %489 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %62, i64 noundef %488) #5
  invoke void @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE9push_backERKS2_(ptr noundef nonnull align 8 dereferenceable(24) %100, ptr noundef nonnull align 8 dereferenceable(88) %489)
          to label %490 unwind label %495

490:                                              ; preds = %.lr.ph283
  %491 = add i32 %.0156282, 1
  %492 = zext i32 %491 to i64
  %493 = call noundef i64 @_ZNKSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %62) #5
  %494 = icmp ugt i64 %493, %492
  br i1 %494, label %.lr.ph283, label %._crit_edge284, !llvm.loop !96

495:                                              ; preds = %.lr.ph283
  %496 = landingpad { ptr, i32 }
          cleanup
  br label %589

._crit_edge287:                                   ; preds = %517, %.preheader224.._crit_edge287_crit_edge
  %497 = phi i64 [ %.pre339, %.preheader224.._crit_edge287_crit_edge ], [ %514, %517 ]
  %.lcssa249 = phi i64 [ %486, %.preheader224.._crit_edge287_crit_edge ], [ %520, %517 ]
  %498 = sub nsw i64 %497, %.lcssa249
  store i64 %498, ptr %88, align 8, !tbaa !73
  br label %542

.lr.ph286:                                        ; preds = %.preheader224, %517
  %indvars.iv333 = phi i64 [ %indvars.iv.next334, %517 ], [ 0, %.preheader224 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %41) #5
  %499 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %87) #5
  store ptr %499, ptr %41, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN4Data12cmdScheduler11commandItemESt6vectorIS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S8_EE(ptr noundef nonnull align 8 dereferenceable(8) %40, ptr noundef nonnull align 8 dereferenceable(8) %41) #5
  %500 = load ptr, ptr %40, align 8
  %501 = invoke ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS2_S4_EE(ptr noundef nonnull align 8 dereferenceable(24) %87, ptr %500)
          to label %502 unwind label %522

502:                                              ; preds = %.lr.ph286
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #5
  %503 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %93, i64 noundef 0) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %43) #5
  %504 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %93, i64 noundef 0) #5
  %505 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %504) #5
  store ptr %505, ptr %43, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN4Data12cmdScheduler11commandItemESt6vectorIS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S8_EE(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull align 8 dereferenceable(8) %43) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #5
  %506 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %93, i64 noundef 0) #5
  %507 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %506) #5
  store ptr %507, ptr %45, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN4Data12cmdScheduler11commandItemESt6vectorIS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S8_EE(ptr noundef nonnull align 8 dereferenceable(8) %44, ptr noundef nonnull align 8 dereferenceable(8) %45) #5
  %508 = load ptr, ptr %42, align 8
  %509 = load ptr, ptr %44, align 8
  %510 = invoke ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS2_S4_EES9_(ptr noundef nonnull align 8 dereferenceable(24) %503, ptr %508, ptr %509)
          to label %511 unwind label %524

511:                                              ; preds = %502
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #5
  %512 = xor i64 %indvars.iv333, -1
  br label %513

513:                                              ; preds = %536, %511
  %indvars.iv329 = phi i64 [ %indvars.iv.next330, %536 ], [ 0, %511 ]
  %514 = load i64, ptr %88, align 8, !tbaa !73
  %515 = add i64 %514, %512
  %516 = icmp sgt i64 %515, %indvars.iv329
  br i1 %516, label %526, label %517

517:                                              ; preds = %513
  %indvars.iv.next334 = add nuw nsw i64 %indvars.iv333, 1
  %518 = load i64, ptr %79, align 8, !tbaa !61
  %519 = load i64, ptr %82, align 8, !tbaa !64
  %520 = mul nsw i64 %519, %518
  %521 = icmp sgt i64 %520, %indvars.iv.next334
  br i1 %521, label %.lr.ph286, label %._crit_edge287, !llvm.loop !97

522:                                              ; preds = %.lr.ph286
  %523 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %41) #5
  br label %589

524:                                              ; preds = %502
  %525 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %43) #5
  br label %589

526:                                              ; preds = %513
  %527 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %93, i64 noundef %indvars.iv329) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #5
  %528 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %93, i64 noundef %indvars.iv329) #5
  %529 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %528) #5
  store ptr %529, ptr %47, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN4Data12cmdScheduler11commandItemESt6vectorIS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S8_EE(ptr noundef nonnull align 8 dereferenceable(8) %46, ptr noundef nonnull align 8 dereferenceable(8) %47) #5
  %indvars.iv.next330 = add nuw nsw i64 %indvars.iv329, 1
  %530 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %93, i64 noundef %indvars.iv.next330) #5
  %531 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %530) #5
  %532 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %93, i64 noundef %indvars.iv.next330) #5
  %533 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %532) #5
  %534 = load ptr, ptr %46, align 8
  %535 = invoke ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE6insertIN9__gnu_cxx17__normal_iteratorIPS2_S4_EEvEES9_NS7_IPKS2_S4_EET_SD_(ptr noundef nonnull align 8 dereferenceable(24) %527, ptr %534, ptr %531, ptr %533)
          to label %536 unwind label %538

536:                                              ; preds = %526
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #5
  %537 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %93, i64 noundef %indvars.iv.next330) #5
  invoke void @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE6resizeEm(ptr noundef nonnull align 8 dereferenceable(24) %537, i64 noundef 0)
          to label %513 unwind label %540, !llvm.loop !98

538:                                              ; preds = %526
  %539 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #5
  br label %589

540:                                              ; preds = %536
  %541 = landingpad { ptr, i32 }
          cleanup
  br label %589

542:                                              ; preds = %._crit_edge287, %._crit_edge284
  %543 = add nuw i64 %.0176289, 1
  %544 = call noundef i64 @_ZNKSt6vectorIN4Data12cmdScheduler5transESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #5
  %545 = icmp ult i64 %543, %544
  br i1 %545, label %111, label %.preheader, !llvm.loop !99

._crit_edge295:                                   ; preds = %579, %.preheader
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %49) #5
  %546 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %102) #5
  store ptr %546, ptr %49, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN4Data12cmdScheduler11commandItemESt6vectorIS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S8_EE(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef nonnull align 8 dereferenceable(8) %49) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #5
  %547 = call ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %102) #5
  store ptr %547, ptr %51, align 8
  call void @_ZN9__gnu_cxx17__normal_iteratorIPKN4Data12cmdScheduler11commandItemESt6vectorIS3_SaIS3_EEEC2IPS3_vEERKNS0_IT_S8_EE(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(8) %51) #5
  %548 = load ptr, ptr %48, align 8
  %549 = load ptr, ptr %50, align 8
  %550 = invoke ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS2_S4_EES9_(ptr noundef nonnull align 8 dereferenceable(24) %102, ptr %548, ptr %549)
          to label %586 unwind label %587

551:                                              ; preds = %.lr.ph294, %579
  %552 = phi i64 [ 0, %.lr.ph294 ], [ %581, %579 ]
  %.0293 = phi i32 [ 0, %.lr.ph294 ], [ %580, %579 ]
  %553 = load ptr, ptr %104, align 8, !tbaa !100
  %554 = getelementptr i8, ptr %553, i64 -24
  %555 = load i64, ptr %554, align 8
  %556 = getelementptr inbounds i8, ptr %104, i64 %555
  %557 = call noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216) %556, i64 noundef 0)
  %558 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSt8ios_baseS0_E(ptr noundef nonnull align 8 dereferenceable(8) %104, ptr noundef nonnull @_ZSt5fixedRSt8ios_base)
          to label %559 unwind label %584

559:                                              ; preds = %551
  %560 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %102, i64 noundef %552) #5
  %561 = getelementptr inbounds i8, ptr %560, i64 16
  %562 = load i64, ptr %561, align 8, !tbaa !45
  %563 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEl(ptr noundef nonnull align 8 dereferenceable(8) %558, i64 noundef %562)
          to label %564 unwind label %584

564:                                              ; preds = %559
  %565 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %563, ptr noundef nonnull @.str.11)
          to label %566 unwind label %584

566:                                              ; preds = %564
  %567 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %102, i64 noundef %552) #5
  %568 = getelementptr inbounds i8, ptr %567, i64 24
  %569 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %565, ptr noundef nonnull align 8 dereferenceable(32) %568)
          to label %570 unwind label %584

570:                                              ; preds = %566
  %571 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %569, ptr noundef nonnull @.str.11)
          to label %572 unwind label %584

572:                                              ; preds = %570
  %573 = call noundef nonnull align 8 dereferenceable(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %102, i64 noundef %552) #5
  %574 = getelementptr inbounds i8, ptr %573, i64 8
  %575 = load i64, ptr %574, align 8, !tbaa !82
  %576 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEl(ptr noundef nonnull align 8 dereferenceable(8) %571, i64 noundef %575)
          to label %577 unwind label %584

577:                                              ; preds = %572
  %578 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %576, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %579 unwind label %584

579:                                              ; preds = %577
  %580 = add i32 %.0293, 1
  %581 = zext i32 %580 to i64
  %582 = call noundef i64 @_ZNKSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %102) #5
  %583 = icmp ugt i64 %582, %581
  br i1 %583, label %551, label %._crit_edge295, !llvm.loop !102

584:                                              ; preds = %577, %572, %570, %566, %564, %559, %551
  %585 = landingpad { ptr, i32 }
          cleanup
  br label %589

586:                                              ; preds = %._crit_edge295
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #5
  call void @_ZNSt13_Bvector_baseISaIbEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #5
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #5
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #5
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #5
  ret void

587:                                              ; preds = %._crit_edge295
  %588 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %49) #5
  br label %589

589:                                              ; preds = %127, %140, %162, %167, %204, %522, %524, %540, %538, %256, %325, %380, %495, %233, %587, %584
  %.pn210.pn.pn = phi { ptr, i32 } [ %585, %584 ], [ %588, %587 ], [ %.pn210, %140 ], [ %205, %204 ], [ %168, %167 ], [ %163, %162 ], [ %128, %127 ], [ %496, %495 ], [ %234, %233 ], [ %257, %256 ], [ %381, %380 ], [ %326, %325 ], [ %525, %524 ], [ %523, %522 ], [ %541, %540 ], [ %539, %538 ]
  call void @_ZNSt13_Bvector_baseISaIbEED2Ev(ptr noundef nonnull align 8 dereferenceable(40) %10) #5
  br label %590

590:                                              ; preds = %589, %109
  %.pn210.pn.pn.pn = phi { ptr, i32 } [ %.pn210.pn.pn, %589 ], [ %110, %109 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #5
  call void @_ZNSt6vectorIlSaIlEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #5
  br label %591

591:                                              ; preds = %590, %107
  %.pn210.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn210.pn.pn.pn, %590 ], [ %108, %107 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #5
  call void @_ZNSt6vectorImSaImEED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #5
  br label %592

592:                                              ; preds = %591, %105
  %.pn210.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn210.pn.pn.pn.pn, %591 ], [ %106, %105 ]
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #5
  resume { ptr, i32 } %.pn210.pn.pn.pn.pn.pn
}

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

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

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

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

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

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, i32 } @_ZNSt6vectorIbSaIbEE5beginEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress nounwind uwtable
declare dso_local { ptr, i32 } @_ZNSt6vectorIbSaIbEE3endEv(ptr noundef nonnull align 8 dereferenceable(40)) local_unnamed_addr #2 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNKSt13_Bit_iteratordeEv(ptr noundef nonnull align 8 dereferenceable(12)) local_unnamed_addr #1 align 2

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

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPlSt6vectorIlSaIlEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(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(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPlSt6vectorIlSaIlEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Data12cmdScheduler9memoryMapENS0_5transERKNS_19MemorySpecificationE(ptr dead_on_unwind noalias writable sret(%"class.Data::cmdScheduler::physicalAddr") align 8, ptr noundef nonnull align 8 dereferenceable(1080), ptr noundef byval(%"class.Data::cmdScheduler::trans") align 8, ptr noundef nonnull align 8 dereferenceable(736)) local_unnamed_addr #1 align 2

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef zeroext i1 @_ZN9__gnu_cxxneIPmSt6vectorImSaImEEEEbRKNS_17__normal_iteratorIT_T0_EESA_(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(8) ptr @_ZNK9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEdeEv(ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 align 2

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZSt3maxIlERKT_S2_S2_(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(88) ptr @_ZNSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24), i64 noundef) local_unnamed_addr #2 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Data12cmdScheduler12pdSchedulingEllRKNS_19MemorySpecificationE(ptr noundef nonnull align 8 dereferenceable(1080), i64 noundef, i64 noundef, ptr noundef nonnull align 8 dereferenceable(736)) local_unnamed_addr #1 align 2

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

; Function Attrs: mustprogress uwtable
declare dso_local noundef i64 @_ZN4Data12cmdScheduler7getRWTPElRKNS_19MemorySpecificationE(ptr noundef nonnull align 8 dereferenceable(1080), i64 noundef, ptr noundef nonnull align 8 dereferenceable(736)) local_unnamed_addr #1 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN4Data12cmdScheduler20getTimingConstraintsEbRKNS_19MemorySpecificationEll(ptr noundef nonnull align 8 dereferenceable(1080), i1 noundef zeroext, ptr noundef nonnull align 8 dereferenceable(736), i64 noundef, i64 noundef) local_unnamed_addr #1 align 2

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i64 } @_ZNSt6vectorIbSaIbEEixEm(ptr noundef nonnull align 8 dereferenceable(40), i64 noundef) local_unnamed_addr #1 align 2

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local void @_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPN4Data12cmdScheduler11commandItemESt6vectorIS4_SaIS4_EEEENS4_17commandItemSorterEEvT_SB_T0_(ptr, ptr) local_unnamed_addr #4

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

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNSt8ios_base9precisionEl(ptr noundef nonnull align 8 dereferenceable(216), i64 noundef) local_unnamed_addr #2 align 2

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

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

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

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

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

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

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

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

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

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

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

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

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { 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 #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 = { 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 #5 = { 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 = !{!"long", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !6, i64 544}
!10 = !{!"_ZTSN4Data12cmdSchedulerE", !11, i64 0, !16, i64 24, !16, i64 112, !16, i64 200, !20, i64 288, !20, i64 312, !24, i64 336, !20, i64 360, !20, i64 384, !28, i64 408, !6, i64 416, !6, i64 424, !6, i64 432, !6, i64 440, !6, i64 448, !6, i64 456, !6, i64 464, !6, i64 472, !6, i64 480, !6, i64 488, !6, i64 496, !6, i64 504, !6, i64 512, !6, i64 520, !6, i64 528, !6, i64 536, !6, i64 544, !29, i64 552, !6, i64 560, !30, i64 568}
!11 = !{!"_ZTSSt6vectorIN4Data12cmdScheduler5transESaIS2_EE", !12, i64 0}
!12 = !{!"_ZTSSt12_Vector_baseIN4Data12cmdScheduler5transESaIS2_EE", !13, i64 0}
!13 = !{!"_ZTSNSt12_Vector_baseIN4Data12cmdScheduler5transESaIS2_EE12_Vector_implE", !14, i64 0}
!14 = !{!"_ZTSNSt12_Vector_baseIN4Data12cmdScheduler5transESaIS2_EE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!15 = !{!"any pointer", !7, i64 0}
!16 = !{!"_ZTSN4Data12cmdScheduler11commandItemE", !6, i64 0, !6, i64 8, !6, i64 16, !17, i64 24, !19, i64 56}
!17 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !18, i64 0, !6, i64 8, !7, i64 16}
!18 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !15, i64 0}
!19 = !{!"_ZTSN4Data12cmdScheduler12physicalAddrE", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24}
!20 = !{!"_ZTSSt6vectorIN4Data12cmdScheduler11commandItemESaIS2_EE", !21, i64 0}
!21 = !{!"_ZTSSt12_Vector_baseIN4Data12cmdScheduler11commandItemESaIS2_EE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIN4Data12cmdScheduler11commandItemESaIS2_EE12_Vector_implE", !23, i64 0}
!23 = !{!"_ZTSNSt12_Vector_baseIN4Data12cmdScheduler11commandItemESaIS2_EE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!24 = !{!"_ZTSSt6vectorIS_IN4Data12cmdScheduler11commandItemESaIS2_EESaIS4_EE", !25, i64 0}
!25 = !{!"_ZTSSt12_Vector_baseISt6vectorIN4Data12cmdScheduler11commandItemESaIS3_EESaIS5_EE", !26, i64 0}
!26 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN4Data12cmdScheduler11commandItemESaIS3_EESaIS5_EE12_Vector_implE", !27, i64 0}
!27 = !{!"_ZTSNSt12_Vector_baseISt6vectorIN4Data12cmdScheduler11commandItemESaIS3_EESaIS5_EE17_Vector_impl_dataE", !15, i64 0, !15, i64 8, !15, i64 16}
!28 = !{!"int", !7, i64 0}
!29 = !{!"bool", !7, i64 0}
!30 = !{!"_ZTSSt14basic_ofstreamIcSt11char_traitsIcEE", !31, i64 0, !32, i64 8}
!31 = !{!"_ZTSSo"}
!32 = !{!"_ZTSSt13basic_filebufIcSt11char_traitsIcEE", !33, i64 0, !7, i64 64, !35, i64 104, !36, i64 120, !37, i64 124, !37, i64 132, !37, i64 140, !15, i64 152, !6, i64 160, !29, i64 168, !29, i64 169, !29, i64 170, !7, i64 171, !15, i64 176, !15, i64 184, !29, i64 192, !15, i64 200, !15, i64 208, !6, i64 216, !15, i64 224, !15, i64 232}
!33 = !{!"_ZTSSt15basic_streambufIcSt11char_traitsIcEE", !15, i64 8, !15, i64 16, !15, i64 24, !15, i64 32, !15, i64 40, !15, i64 48, !34, i64 56}
!34 = !{!"_ZTSSt6locale", !15, i64 0}
!35 = !{!"_ZTSSt12__basic_fileIcE", !15, i64 0, !29, i64 8}
!36 = !{!"_ZTSSt13_Ios_Openmode", !7, i64 0}
!37 = !{!"_ZTS11__mbstate_t", !28, i64 0, !7, i64 4}
!38 = !{!10, !6, i64 520}
!39 = !{!29, !29, i64 0}
!40 = !{!10, !6, i64 456}
!41 = !{!10, !29, i64 552}
!42 = !{!43, !6, i64 8}
!43 = !{!"_ZTSN4Data12cmdScheduler5transE", !6, i64 0, !6, i64 8, !6, i64 16}
!44 = !{!10, !6, i64 120}
!45 = !{!16, !6, i64 16}
!46 = !{!47, !6, i64 136}
!47 = !{!"_ZTSN4Data13MemTimingSpecE", !48, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144, !6, i64 152, !6, i64 160, !6, i64 168, !6, i64 176, !6, i64 184, !6, i64 192, !6, i64 200, !6, i64 208, !6, i64 216, !6, i64 224, !6, i64 232, !6, i64 240, !6, i64 248, !48, i64 256}
!48 = !{!"double", !7, i64 0}
!49 = !{!10, !6, i64 448}
!50 = !{!10, !6, i64 488}
!51 = !{!10, !6, i64 128}
!52 = !{!47, !6, i64 120}
!53 = !{!10, !6, i64 32}
!54 = !{!10, !6, i64 40}
!55 = !{!47, !6, i64 144}
!56 = !{!10, !6, i64 560}
!57 = distinct !{!57, !58}
!58 = !{!"llvm.loop.mustprogress"}
!59 = !{!43, !6, i64 0}
!60 = !{!10, !6, i64 504}
!61 = !{!10, !6, i64 416}
!62 = distinct !{!62, !58, !63}
!63 = !{!"llvm.loop.unswitch.partial.disable"}
!64 = !{!10, !6, i64 432}
!65 = !{!10, !6, i64 424}
!66 = distinct !{!66, !58}
!67 = !{i8 0, i8 2}
!68 = !{}
!69 = !{!10, !6, i64 200}
!70 = !{!10, !6, i64 88}
!71 = !{!10, !6, i64 80}
!72 = !{!10, !6, i64 24}
!73 = !{!10, !6, i64 512}
!74 = !{!10, !6, i64 464}
!75 = !{!47, !6, i64 80}
!76 = !{!47, !6, i64 88}
!77 = !{!10, !6, i64 216}
!78 = distinct !{!78, !58}
!79 = distinct !{!79, !58}
!80 = !{!10, !6, i64 536}
!81 = !{!10, !6, i64 104}
!82 = !{!16, !6, i64 8}
!83 = distinct !{!83, !58}
!84 = !{!10, !6, i64 496}
!85 = !{!47, !6, i64 24}
!86 = !{!16, !6, i64 0}
!87 = distinct !{!87, !58}
!88 = !{!47, !6, i64 160}
!89 = distinct !{!89, !58}
!90 = !{!91, !6, i64 64}
!91 = !{!"_ZTSN4Data19MemorySpecificationE", !17, i64 8, !92, i64 40, !94, i64 48, !47, i64 160, !95, i64 456}
!92 = !{!"_ZTSN4Data10MemoryTypeE", !93, i64 0}
!93 = !{!"_ZTSN4Data10MemoryType12MemoryType_tE", !7, i64 0}
!94 = !{!"_ZTSN4Data19MemArchitectureSpecE", !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !29, i64 72, !29, i64 73, !29, i64 74}
!95 = !{!"_ZTSN4Data12MemPowerSpecE", !48, i64 8, !48, i64 16, !48, i64 24, !48, i64 32, !48, i64 40, !48, i64 48, !48, i64 56, !48, i64 64, !48, i64 72, !48, i64 80, !48, i64 88, !48, i64 96, !48, i64 104, !48, i64 112, !48, i64 120, !48, i64 128, !48, i64 136, !48, i64 144, !48, i64 152, !48, i64 160, !48, i64 168, !48, i64 176, !48, i64 184, !48, i64 192, !48, i64 200, !48, i64 208, !48, i64 216, !48, i64 224, !48, i64 232, !48, i64 240}
!96 = distinct !{!96, !58}
!97 = distinct !{!97, !58}
!98 = distinct !{!98, !58}
!99 = distinct !{!99, !58}
!100 = !{!101, !101, i64 0}
!101 = !{!"vtable pointer", !8, i64 0}
!102 = distinct !{!102, !58}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyCFGPass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,ReassociatePass,SROAPass,SimpleLoopUnswitchPass,SimplifyCFGPass