; LLVM IR from NVIDIA/DALI :: dali/pipeline/executor/executor2 (exec_graph_analysis)

; 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.anon = type { i8 }
%"class.std::unordered_set" = type { %"class.std::_Hashtable.16" }
%"class.std::_Hashtable.16" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"struct.std::hash.20" = type { i8 }
%"struct.std::equal_to.23" = type { i8 }
%"class.std::allocator.35" = type { i8 }
%"class.std::unordered_set.38" = type { %"class.std::_Hashtable.39" }
%"class.std::_Hashtable.39" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::hash.43" = type { i8 }
%"struct.std::equal_to.46" = type { i8 }
%"class.std::allocator.58" = type { i8 }
%"struct.std::_List_iterator" = type { ptr }
%"struct.std::pair" = type <{ %"struct.std::__detail::_Node_iterator", i8, [7 x i8] }>
%"struct.std::__detail::_Node_iterator" = type { %"struct.std::__detail::_Node_iterator_base" }
%"struct.std::__detail::_Node_iterator_base" = type { ptr }
%"struct.std::_List_iterator.84" = type { ptr }
%"struct.std::pair.85" = type <{ %"struct.std::__detail::_Node_iterator.87", i8, [7 x i8] }>
%"struct.std::__detail::_Node_iterator.87" = type { %"struct.std::__detail::_Node_iterator_base.88" }
%"struct.std::__detail::_Node_iterator_base.88" = type { ptr }
%"class.dali::exec2::ExecGraph" = type { %"class.std::__cxx11::list", %"class.std::__cxx11::list.3", %"class.std::unordered_map", i8, i8, i8, i8, %"class.std::shared_ptr" }
%"class.std::__cxx11::list" = type { %"class.std::__cxx11::_List_base" }
%"class.std::__cxx11::_List_base" = type { %"struct.std::__cxx11::_List_base<dali::exec2::ExecNode, std::allocator<dali::exec2::ExecNode>>::_List_impl" }
%"struct.std::__cxx11::_List_base<dali::exec2::ExecNode, std::allocator<dali::exec2::ExecNode>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"struct.std::__detail::_List_node_header" = type { %"struct.std::__detail::_List_node_base", i64 }
%"struct.std::__detail::_List_node_base" = type { ptr, ptr }
%"class.std::__cxx11::list.3" = type { %"class.std::__cxx11::_List_base.4" }
%"class.std::__cxx11::_List_base.4" = type { %"struct.std::__cxx11::_List_base<dali::exec2::ExecEdge, std::allocator<dali::exec2::ExecEdge>>::_List_impl" }
%"struct.std::__cxx11::_List_base<dali::exec2::ExecEdge, std::allocator<dali::exec2::ExecEdge>>::_List_impl" = type { %"struct.std::__detail::_List_node_header" }
%"class.std::unordered_map" = type { %"class.std::_Hashtable" }
%"class.std::_Hashtable" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"class.std::shared_ptr" = type { %"class.std::__shared_ptr" }
%"class.std::__shared_ptr" = type { ptr, %"class.std::__shared_count" }
%"class.std::__shared_count" = type { ptr }
%"struct.dali::exec2::ExecEdge" = type <{ ptr, ptr, i32, i32, i32, i8, [3 x i8] }>
%"class.dali::exec2::ExecNode" = type { %"class.dali::SmallVector", %"class.dali::SmallVector.62", %"class.std::shared_ptr.67", %"class.std::shared_ptr.67", %"class.std::unique_ptr", %"struct.dali::exec2::ExecEnv", %"class.std::__cxx11::basic_string", i32, i8, i8, i8, %"class.std::shared_ptr", %"class.std::shared_ptr", %"class.std::shared_ptr", %"class.std::unique_ptr.72", i8, %"class.dali::CUDASharedEvent", %"class.std::any" }
%"class.dali::SmallVector" = type { %union.anon.61, i64 }
%union.anon.61 = type { %struct.anon, [48 x i8] }
%struct.anon = type { ptr, i64 }
%"class.dali::SmallVector.62" = type { %union.anon.65, i64 }
%union.anon.65 = type { %struct.anon.66, [176 x i8] }
%struct.anon.66 = type { ptr, i64 }
%"class.std::shared_ptr.67" = type { %"class.std::__shared_ptr.68" }
%"class.std::__shared_ptr.68" = type { ptr, %"class.std::__shared_count" }
%"class.std::unique_ptr" = type { %"struct.std::__uniq_ptr_data" }
%"struct.std::__uniq_ptr_data" = type { %"class.std::__uniq_ptr_impl" }
%"class.std::__uniq_ptr_impl" = type { %"class.std::tuple" }
%"class.std::tuple" = type { %"struct.std::_Tuple_impl" }
%"struct.std::_Tuple_impl" = type { %"struct.std::_Head_base.71" }
%"struct.std::_Head_base.71" = type { ptr }
%"struct.dali::exec2::ExecEnv" = type { ptr, %"class.dali::AccessOrder" }
%"class.dali::AccessOrder" = type <{ ptr, i32, [4 x i8] }>
%"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::unique_ptr.72" = type { %"struct.std::__uniq_ptr_data.73" }
%"struct.std::__uniq_ptr_data.73" = type { %"class.std::__uniq_ptr_impl.74" }
%"class.std::__uniq_ptr_impl.74" = type { %"class.std::tuple.75" }
%"class.std::tuple.75" = type { %"struct.std::_Tuple_impl.76" }
%"struct.std::_Tuple_impl.76" = type { %"struct.std::_Head_base.79" }
%"struct.std::_Head_base.79" = type { ptr }
%"class.dali::CUDASharedEvent" = type { %"class.std::shared_ptr.80" }
%"class.std::shared_ptr.80" = type { %"class.std::__shared_ptr.81" }
%"class.std::__shared_ptr.81" = type { ptr, %"class.std::__shared_count" }
%"class.std::any" = type { ptr, %"union.std::any::_Storage" }
%"union.std::any::_Storage" = type { ptr }
%"struct.dali::exec2::ExecOutputDesc" = type <{ %"class.dali::SmallVector.90", i32, i8, i8, [2 x i8] }>
%"class.dali::SmallVector.90" = type { %union.anon.91, i64 }
%union.anon.91 = type { %struct.anon.92, [16 x i8] }
%struct.anon.92 = type { ptr, i64 }

@.str.4 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [41 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

declare i32 @__gxx_personality_v0(...)

; 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
define dso_local void @_ZN4dali5exec29ExecGraph8ValidateEv(ptr noundef nonnull align 8 dereferenceable(128) %0) #1 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca ptr, align 8
  %3 = alloca %class.anon, align 1
  %4 = alloca i32, align 4
  %5 = alloca %"class.std::unordered_set", align 8
  %6 = alloca %"struct.std::hash.20", align 1
  %7 = alloca %"struct.std::equal_to.23", align 1
  %8 = alloca %"class.std::allocator.35", align 1
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca %"class.std::unordered_set.38", align 8
  %12 = alloca %"struct.std::hash.43", align 1
  %13 = alloca %"struct.std::equal_to.46", align 1
  %14 = alloca %"class.std::allocator.58", align 1
  %15 = alloca ptr, align 8
  %16 = alloca %"struct.std::_List_iterator", align 8
  %17 = alloca %"struct.std::_List_iterator", align 8
  %18 = alloca ptr, align 8
  %19 = alloca ptr, align 8
  %20 = alloca %"struct.std::pair", align 8
  %21 = alloca ptr, align 8
  %22 = alloca %"struct.std::_List_iterator.84", align 8
  %23 = alloca %"struct.std::_List_iterator.84", align 8
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca %"struct.std::pair.85", align 8
  %27 = alloca ptr, align 8
  %28 = alloca %"struct.std::_List_iterator.84", align 8
  %29 = alloca %"struct.std::_List_iterator.84", align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  %32 = alloca ptr, align 8
  %33 = alloca ptr, align 8
  %34 = alloca %"struct.std::_List_iterator", align 8
  %35 = alloca %"struct.std::_List_iterator", align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca ptr, align 8
  %41 = alloca ptr, align 8
  %42 = alloca ptr, align 8
  %43 = alloca ptr, align 8
  %44 = alloca ptr, align 8
  %45 = alloca i32, align 4
  %46 = alloca i32, align 4
  %47 = alloca ptr, align 8
  %48 = alloca i8, align 1
  %49 = alloca ptr, align 8
  %50 = alloca %"struct.std::_List_iterator", align 8
  %51 = alloca %"struct.std::_List_iterator", align 8
  %52 = alloca ptr, align 8
  store ptr %0, ptr %2, align 8, !tbaa !5
  %53 = load ptr, ptr %2, align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr %3) #5
  %54 = getelementptr inbounds %"class.dali::exec2::ExecGraph", ptr %53, i32 0, i32 4
  %55 = load i8, ptr %54, align 1, !tbaa !9, !range !29, !noundef !30
  %56 = trunc i8 %55 to i1
  br i1 %56, label %57, label %58

57:                                               ; preds = %1
  store i32 1, ptr %4, align 4
  br label %481

58:                                               ; preds = %1
  %59 = getelementptr inbounds %"class.dali::exec2::ExecGraph", ptr %53, i32 0, i32 0
  %60 = call noundef zeroext i1 @_ZNKSt7__cxx114listIN4dali5exec28ExecNodeESaIS3_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %59) #5
  br i1 %60, label %61, label %66

61:                                               ; preds = %58
  %62 = getelementptr inbounds %"class.dali::exec2::ExecGraph", ptr %53, i32 0, i32 1
  %63 = call noundef zeroext i1 @_ZNKSt7__cxx114listIN4dali5exec28ExecEdgeESaIS3_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %62) #5
  br i1 %63, label %65, label %64

64:                                               ; preds = %61
  call void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA36_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 1 dereferenceable(36) @.str.4)
  br label %65

65:                                               ; preds = %64, %61
  store i32 1, ptr %4, align 4
  br label %481

66:                                               ; preds = %58
  call void @llvm.lifetime.start.p0(i64 56, ptr %5) #5
  %67 = getelementptr inbounds %"class.dali::exec2::ExecGraph", ptr %53, i32 0, i32 0
  %68 = call noundef i64 @_ZNKSt7__cxx114listIN4dali5exec28ExecNodeESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %67) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %6) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %7) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %8) #5
  call void @_ZNSaIPKN4dali5exec28ExecNodeEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #5
  invoke void @_ZNSt13unordered_setIPKN4dali5exec28ExecNodeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EEC2EmRKS6_RKS8_RKS9_(ptr noundef nonnull align 8 dereferenceable(56) %5, i64 noundef %68, ptr noundef nonnull align 1 dereferenceable(1) %6, ptr noundef nonnull align 1 dereferenceable(1) %7, ptr noundef nonnull align 1 dereferenceable(1) %8)
          to label %69 unwind label %83

69:                                               ; preds = %66
  call void @_ZNSt15__new_allocatorIPKN4dali5exec28ExecNodeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #5
  call void @llvm.lifetime.start.p0(i64 56, ptr %11) #5
  %70 = getelementptr inbounds %"class.dali::exec2::ExecGraph", ptr %53, i32 0, i32 1
  %71 = call noundef i64 @_ZNKSt7__cxx114listIN4dali5exec28ExecEdgeESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %70) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %12) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr %14) #5
  call void @_ZNSaIPKN4dali5exec28ExecEdgeEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #5
  invoke void @_ZNSt13unordered_setIPKN4dali5exec28ExecEdgeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EEC2EmRKS6_RKS8_RKS9_(ptr noundef nonnull align 8 dereferenceable(56) %11, i64 noundef %71, ptr noundef nonnull align 1 dereferenceable(1) %12, ptr noundef nonnull align 1 dereferenceable(1) %13, ptr noundef nonnull align 1 dereferenceable(1) %14)
          to label %72 unwind label %87

72:                                               ; preds = %69
  call void @_ZNSt15__new_allocatorIPKN4dali5exec28ExecEdgeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #5
  %73 = getelementptr inbounds %"class.dali::exec2::ExecGraph", ptr %53, i32 0, i32 0
  store ptr %73, ptr %15, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #5
  %74 = load ptr, ptr %15, align 8, !tbaa !5
  %75 = call ptr @_ZNSt7__cxx114listIN4dali5exec28ExecNodeESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %74) #5
  %76 = getelementptr inbounds %"struct.std::_List_iterator", ptr %16, i32 0, i32 0
  store ptr %75, ptr %76, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #5
  %77 = load ptr, ptr %15, align 8, !tbaa !5
  %78 = call ptr @_ZNSt7__cxx114listIN4dali5exec28ExecNodeESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %77) #5
  %79 = getelementptr inbounds %"struct.std::_List_iterator", ptr %17, i32 0, i32 0
  store ptr %78, ptr %79, align 8
  br label %80

80:                                               ; preds = %100, %72
  %81 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorIN4dali5exec28ExecNodeEES5_(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(8) %17) #5
  br i1 %81, label %91, label %82

82:                                               ; preds = %80
  store i32 2, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #5
  br label %106

83:                                               ; preds = %66
  %84 = landingpad { ptr, i32 }
          cleanup
  %85 = extractvalue { ptr, i32 } %84, 0
  store ptr %85, ptr %9, align 8
  %86 = extractvalue { ptr, i32 } %84, 1
  store i32 %86, ptr %10, align 4
  call void @_ZNSt15__new_allocatorIPKN4dali5exec28ExecNodeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %8) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %7) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %6) #5
  br label %486

87:                                               ; preds = %69
  %88 = landingpad { ptr, i32 }
          cleanup
  %89 = extractvalue { ptr, i32 } %88, 0
  store ptr %89, ptr %9, align 8
  %90 = extractvalue { ptr, i32 } %88, 1
  store i32 %90, ptr %10, align 4
  call void @_ZNSt15__new_allocatorIPKN4dali5exec28ExecEdgeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %14) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %12) #5
  br label %485

91:                                               ; preds = %80
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #5
  %92 = call noundef nonnull align 8 dereferenceable(472) ptr @_ZNKSt14_List_iteratorIN4dali5exec28ExecNodeEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #5
  store ptr %92, ptr %18, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #5
  %93 = load ptr, ptr %18, align 8, !tbaa !5
  store ptr %93, ptr %19, align 8, !tbaa !5
  %94 = invoke { ptr, i8 } @_ZNSt13unordered_setIPKN4dali5exec28ExecNodeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE6insertEOS4_(ptr noundef nonnull align 8 dereferenceable(56) %5, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %95 unwind label %102

95:                                               ; preds = %91
  %96 = getelementptr inbounds { ptr, i8 }, ptr %20, i32 0, i32 0
  %97 = extractvalue { ptr, i8 } %94, 0
  store ptr %97, ptr %96, align 8
  %98 = getelementptr inbounds { ptr, i8 }, ptr %20, i32 0, i32 1
  %99 = extractvalue { ptr, i8 } %94, 1
  store i8 %99, ptr %98, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  br label %100

100:                                              ; preds = %95
  %101 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14_List_iteratorIN4dali5exec28ExecNodeEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %16) #5
  br label %80

102:                                              ; preds = %91
  %103 = landingpad { ptr, i32 }
          cleanup
  %104 = extractvalue { ptr, i32 } %103, 0
  store ptr %104, ptr %9, align 8
  %105 = extractvalue { ptr, i32 } %103, 1
  store i32 %105, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #5
  br label %484

106:                                              ; preds = %82
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #5
  %107 = getelementptr inbounds %"class.dali::exec2::ExecGraph", ptr %53, i32 0, i32 1
  store ptr %107, ptr %21, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #5
  %108 = load ptr, ptr %21, align 8, !tbaa !5
  %109 = call ptr @_ZNSt7__cxx114listIN4dali5exec28ExecEdgeESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %108) #5
  %110 = getelementptr inbounds %"struct.std::_List_iterator.84", ptr %22, i32 0, i32 0
  store ptr %109, ptr %110, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #5
  %111 = load ptr, ptr %21, align 8, !tbaa !5
  %112 = call ptr @_ZNSt7__cxx114listIN4dali5exec28ExecEdgeESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %111) #5
  %113 = getelementptr inbounds %"struct.std::_List_iterator.84", ptr %23, i32 0, i32 0
  store ptr %112, ptr %113, align 8
  br label %114

114:                                              ; preds = %126, %106
  %115 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorIN4dali5exec28ExecEdgeEES5_(ptr noundef nonnull align 8 dereferenceable(8) %22, ptr noundef nonnull align 8 dereferenceable(8) %23) #5
  br i1 %115, label %117, label %116

116:                                              ; preds = %114
  store i32 4, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  br label %132

117:                                              ; preds = %114
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #5
  %118 = call noundef nonnull align 8 dereferenceable(29) ptr @_ZNKSt14_List_iteratorIN4dali5exec28ExecEdgeEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %22) #5
  store ptr %118, ptr %24, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #5
  %119 = load ptr, ptr %24, align 8, !tbaa !5
  store ptr %119, ptr %25, align 8, !tbaa !5
  %120 = invoke { ptr, i8 } @_ZNSt13unordered_setIPKN4dali5exec28ExecEdgeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE6insertEOS4_(ptr noundef nonnull align 8 dereferenceable(56) %11, ptr noundef nonnull align 8 dereferenceable(8) %25)
          to label %121 unwind label %128

121:                                              ; preds = %117
  %122 = getelementptr inbounds { ptr, i8 }, ptr %26, i32 0, i32 0
  %123 = extractvalue { ptr, i8 } %120, 0
  store ptr %123, ptr %122, align 8
  %124 = getelementptr inbounds { ptr, i8 }, ptr %26, i32 0, i32 1
  %125 = extractvalue { ptr, i8 } %120, 1
  store i8 %125, ptr %124, align 8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  br label %126

126:                                              ; preds = %121
  %127 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14_List_iteratorIN4dali5exec28ExecEdgeEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %22) #5
  br label %114

128:                                              ; preds = %117
  %129 = landingpad { ptr, i32 }
          cleanup
  %130 = extractvalue { ptr, i32 } %129, 0
  store ptr %130, ptr %9, align 8
  %131 = extractvalue { ptr, i32 } %129, 1
  store i32 %131, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #5
  br label %484

132:                                              ; preds = %116
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #5
  %133 = getelementptr inbounds %"class.dali::exec2::ExecGraph", ptr %53, i32 0, i32 1
  store ptr %133, ptr %27, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #5
  %134 = load ptr, ptr %27, align 8, !tbaa !5
  %135 = call ptr @_ZNSt7__cxx114listIN4dali5exec28ExecEdgeESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %134) #5
  %136 = getelementptr inbounds %"struct.std::_List_iterator.84", ptr %28, i32 0, i32 0
  store ptr %135, ptr %136, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #5
  %137 = load ptr, ptr %27, align 8, !tbaa !5
  %138 = call ptr @_ZNSt7__cxx114listIN4dali5exec28ExecEdgeESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %137) #5
  %139 = getelementptr inbounds %"struct.std::_List_iterator.84", ptr %29, i32 0, i32 0
  store ptr %138, ptr %139, align 8
  br label %140

140:                                              ; preds = %227, %132
  %141 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorIN4dali5exec28ExecEdgeEES5_(ptr noundef nonnull align 8 dereferenceable(8) %28, ptr noundef nonnull align 8 dereferenceable(8) %29) #5
  br i1 %141, label %143, label %142

142:                                              ; preds = %140
  store i32 6, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  br label %231

143:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #5
  %144 = call noundef nonnull align 8 dereferenceable(29) ptr @_ZNKSt14_List_iteratorIN4dali5exec28ExecEdgeEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #5
  store ptr %144, ptr %30, align 8, !tbaa !5
  %145 = load ptr, ptr %30, align 8, !tbaa !5
  %146 = getelementptr inbounds %"struct.dali::exec2::ExecEdge", ptr %145, i32 0, i32 0
  %147 = invoke noundef i64 @_ZNKSt13unordered_setIPKN4dali5exec28ExecNodeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE5countERKS4_(ptr noundef nonnull align 8 dereferenceable(56) %5, ptr noundef nonnull align 8 dereferenceable(8) %146)
          to label %148 unwind label %152

148:                                              ; preds = %143
  %149 = icmp ne i64 %147, 0
  br i1 %149, label %156, label %150

150:                                              ; preds = %148
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA48_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 1 dereferenceable(48) @.str.5)
          to label %151 unwind label %152

151:                                              ; preds = %150
  br label %156

152:                                              ; preds = %176, %164, %162, %156, %150, %143
  %153 = landingpad { ptr, i32 }
          cleanup
  %154 = extractvalue { ptr, i32 } %153, 0
  store ptr %154, ptr %9, align 8
  %155 = extractvalue { ptr, i32 } %153, 1
  store i32 %155, ptr %10, align 4
  br label %230

156:                                              ; preds = %151, %148
  %157 = load ptr, ptr %30, align 8, !tbaa !5
  %158 = getelementptr inbounds %"struct.dali::exec2::ExecEdge", ptr %157, i32 0, i32 1
  %159 = invoke noundef i64 @_ZNKSt13unordered_setIPKN4dali5exec28ExecNodeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE5countERKS4_(ptr noundef nonnull align 8 dereferenceable(56) %5, ptr noundef nonnull align 8 dereferenceable(8) %158)
          to label %160 unwind label %152

160:                                              ; preds = %156
  %161 = icmp ne i64 %159, 0
  br i1 %161, label %164, label %162

162:                                              ; preds = %160
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA48_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 1 dereferenceable(48) @.str.6)
          to label %163 unwind label %152

163:                                              ; preds = %162
  br label %164

164:                                              ; preds = %163, %160
  %165 = load ptr, ptr %30, align 8, !tbaa !5
  %166 = getelementptr inbounds %"struct.dali::exec2::ExecEdge", ptr %165, i32 0, i32 2
  %167 = load i32, ptr %166, align 8, !tbaa !31
  %168 = load ptr, ptr %30, align 8, !tbaa !5
  %169 = getelementptr inbounds %"struct.dali::exec2::ExecEdge", ptr %168, i32 0, i32 0
  %170 = load ptr, ptr %169, align 8, !tbaa !35
  %171 = getelementptr inbounds %"class.dali::exec2::ExecNode", ptr %170, i32 0, i32 1
  %172 = invoke noundef i64 @_ZNK4dali11SmallVectorINS_5exec214ExecOutputDescELm4ESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(200) %171)
          to label %173 unwind label %152

173:                                              ; preds = %164
  %174 = trunc i64 %172 to i32
  %175 = icmp sge i32 %167, %174
  br i1 %175, label %176, label %178

176:                                              ; preds = %173
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA39_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 1 dereferenceable(39) @.str.7)
          to label %177 unwind label %152

177:                                              ; preds = %176
  br label %178

178:                                              ; preds = %177, %173
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #5
  %179 = load ptr, ptr %30, align 8, !tbaa !5
  %180 = getelementptr inbounds %"struct.dali::exec2::ExecEdge", ptr %179, i32 0, i32 0
  %181 = load ptr, ptr %180, align 8, !tbaa !35
  %182 = getelementptr inbounds %"class.dali::exec2::ExecNode", ptr %181, i32 0, i32 1
  %183 = load ptr, ptr %30, align 8, !tbaa !5
  %184 = getelementptr inbounds %"struct.dali::exec2::ExecEdge", ptr %183, i32 0, i32 2
  %185 = load i32, ptr %184, align 8, !tbaa !31
  %186 = sext i32 %185 to i64
  %187 = invoke noundef nonnull align 8 dereferenceable(46) ptr @_ZN4dali11SmallVectorINS_5exec214ExecOutputDescELm4ESaIS2_EEixEl(ptr noundef nonnull align 8 dereferenceable(200) %182, i64 noundef %186)
          to label %188 unwind label %202

188:                                              ; preds = %178
  %189 = getelementptr inbounds %"struct.dali::exec2::ExecOutputDesc", ptr %187, i32 0, i32 0
  store ptr %189, ptr %31, align 8, !tbaa !5
  %190 = load ptr, ptr %31, align 8, !tbaa !5
  %191 = invoke noundef ptr @_ZN4dali11SmallVectorIPNS_5exec28ExecEdgeELm4ESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %190)
          to label %192 unwind label %202

192:                                              ; preds = %188
  %193 = load ptr, ptr %31, align 8, !tbaa !5
  %194 = invoke noundef ptr @_ZN4dali11SmallVectorIPNS_5exec28ExecEdgeELm4ESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(40) %193)
          to label %195 unwind label %202

195:                                              ; preds = %192
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #5
  %196 = load ptr, ptr %30, align 8, !tbaa !5
  store ptr %196, ptr %32, align 8, !tbaa !5
  %197 = invoke noundef i64 @_ZSt5countIPPN4dali5exec28ExecEdgeES3_ENSt15iterator_traitsIT_E15difference_typeES6_S6_RKT0_(ptr noundef %191, ptr noundef %194, ptr noundef nonnull align 8 dereferenceable(8) %32)
          to label %198 unwind label %206

198:                                              ; preds = %195
  %199 = icmp ne i64 %197, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  br i1 %199, label %200, label %210

200:                                              ; preds = %198
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA79_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 1 dereferenceable(79) @.str.8)
          to label %201 unwind label %202

201:                                              ; preds = %200
  br label %210

202:                                              ; preds = %224, %210, %200, %192, %188, %178
  %203 = landingpad { ptr, i32 }
          cleanup
  %204 = extractvalue { ptr, i32 } %203, 0
  store ptr %204, ptr %9, align 8
  %205 = extractvalue { ptr, i32 } %203, 1
  store i32 %205, ptr %10, align 4
  br label %229

206:                                              ; preds = %195
  %207 = landingpad { ptr, i32 }
          cleanup
  %208 = extractvalue { ptr, i32 } %207, 0
  store ptr %208, ptr %9, align 8
  %209 = extractvalue { ptr, i32 } %207, 1
  store i32 %209, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #5
  br label %229

210:                                              ; preds = %201, %198
  %211 = load ptr, ptr %30, align 8, !tbaa !5
  %212 = getelementptr inbounds %"struct.dali::exec2::ExecEdge", ptr %211, i32 0, i32 1
  %213 = load ptr, ptr %212, align 8, !tbaa !36
  %214 = getelementptr inbounds %"class.dali::exec2::ExecNode", ptr %213, i32 0, i32 0
  %215 = load ptr, ptr %30, align 8, !tbaa !5
  %216 = getelementptr inbounds %"struct.dali::exec2::ExecEdge", ptr %215, i32 0, i32 3
  %217 = load i32, ptr %216, align 4, !tbaa !37
  %218 = sext i32 %217 to i64
  %219 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4dali11SmallVectorIPNS_5exec28ExecEdgeELm8ESaIS3_EEixEl(ptr noundef nonnull align 8 dereferenceable(72) %214, i64 noundef %218)
          to label %220 unwind label %202

220:                                              ; preds = %210
  %221 = load ptr, ptr %219, align 8, !tbaa !5
  %222 = load ptr, ptr %30, align 8, !tbaa !5
  %223 = icmp ne ptr %221, %222
  br i1 %223, label %224, label %226

224:                                              ; preds = %220
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA53_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 1 dereferenceable(53) @.str.9)
          to label %225 unwind label %202

225:                                              ; preds = %224
  br label %226

226:                                              ; preds = %225, %220
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  br label %227

227:                                              ; preds = %226
  %228 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14_List_iteratorIN4dali5exec28ExecEdgeEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %28) #5
  br label %140

229:                                              ; preds = %206, %202
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #5
  br label %230

230:                                              ; preds = %229, %152
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #5
  br label %484

231:                                              ; preds = %142
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #5
  %232 = getelementptr inbounds %"class.dali::exec2::ExecGraph", ptr %53, i32 0, i32 0
  store ptr %232, ptr %33, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #5
  %233 = load ptr, ptr %33, align 8, !tbaa !5
  %234 = call ptr @_ZNSt7__cxx114listIN4dali5exec28ExecNodeESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %233) #5
  %235 = getelementptr inbounds %"struct.std::_List_iterator", ptr %34, i32 0, i32 0
  store ptr %234, ptr %235, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #5
  %236 = load ptr, ptr %33, align 8, !tbaa !5
  %237 = call ptr @_ZNSt7__cxx114listIN4dali5exec28ExecNodeESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %236) #5
  %238 = getelementptr inbounds %"struct.std::_List_iterator", ptr %35, i32 0, i32 0
  store ptr %237, ptr %238, align 8
  br label %239

239:                                              ; preds = %445, %231
  %240 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorIN4dali5exec28ExecNodeEES5_(ptr noundef nonnull align 8 dereferenceable(8) %34, ptr noundef nonnull align 8 dereferenceable(8) %35) #5
  br i1 %240, label %242, label %241

241:                                              ; preds = %239
  store i32 8, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  br label %448

242:                                              ; preds = %239
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #5
  %243 = call noundef nonnull align 8 dereferenceable(472) ptr @_ZNKSt14_List_iteratorIN4dali5exec28ExecNodeEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #5
  store ptr %243, ptr %36, align 8, !tbaa !5
  %244 = load ptr, ptr %36, align 8, !tbaa !5
  %245 = getelementptr inbounds %"class.dali::exec2::ExecNode", ptr %244, i32 0, i32 4
  %246 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN4dali12OperatorBaseESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %245) #5
  br i1 %246, label %247, label %281

247:                                              ; preds = %242
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #5
  %248 = load ptr, ptr %36, align 8, !tbaa !5
  %249 = getelementptr inbounds %"class.dali::exec2::ExecNode", ptr %248, i32 0, i32 4
  %250 = call noundef ptr @_ZNKSt10unique_ptrIN4dali12OperatorBaseESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %249) #5
  %251 = invoke noundef nonnull align 8 dereferenceable(328) ptr @_ZNK4dali12OperatorBase7GetSpecEv(ptr noundef nonnull align 8 dereferenceable(400) %250)
          to label %252 unwind label %264

252:                                              ; preds = %247
  store ptr %251, ptr %37, align 8, !tbaa !5
  %253 = load ptr, ptr %36, align 8, !tbaa !5
  %254 = getelementptr inbounds %"class.dali::exec2::ExecNode", ptr %253, i32 0, i32 0
  %255 = invoke noundef i64 @_ZNK4dali11SmallVectorIPNS_5exec28ExecEdgeELm8ESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(72) %254)
          to label %256 unwind label %264

256:                                              ; preds = %252
  %257 = load ptr, ptr %37, align 8, !tbaa !5
  %258 = invoke noundef i32 @_ZNK4dali6OpSpec8NumInputEv(ptr noundef nonnull align 8 dereferenceable(328) %257)
          to label %259 unwind label %264

259:                                              ; preds = %256
  %260 = sext i32 %258 to i64
  %261 = icmp ne i64 %255, %260
  br i1 %261, label %262, label %268

262:                                              ; preds = %259
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA64_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 1 dereferenceable(64) @.str.10)
          to label %263 unwind label %264

263:                                              ; preds = %262
  br label %268

264:                                              ; preds = %278, %272, %268, %262, %256, %252, %247
  %265 = landingpad { ptr, i32 }
          cleanup
  %266 = extractvalue { ptr, i32 } %265, 0
  store ptr %266, ptr %9, align 8
  %267 = extractvalue { ptr, i32 } %265, 1
  store i32 %267, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #5
  br label %447

268:                                              ; preds = %263, %259
  %269 = load ptr, ptr %36, align 8, !tbaa !5
  %270 = getelementptr inbounds %"class.dali::exec2::ExecNode", ptr %269, i32 0, i32 1
  %271 = invoke noundef i64 @_ZNK4dali11SmallVectorINS_5exec214ExecOutputDescELm4ESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(200) %270)
          to label %272 unwind label %264

272:                                              ; preds = %268
  %273 = load ptr, ptr %37, align 8, !tbaa !5
  %274 = invoke noundef i32 @_ZNK4dali6OpSpec9NumOutputEv(ptr noundef nonnull align 8 dereferenceable(328) %273)
          to label %275 unwind label %264

275:                                              ; preds = %272
  %276 = sext i32 %274 to i64
  %277 = icmp ne i64 %271, %276
  br i1 %277, label %278, label %280

278:                                              ; preds = %275
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA65_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 1 dereferenceable(65) @.str.11)
          to label %279 unwind label %264

279:                                              ; preds = %278
  br label %280

280:                                              ; preds = %279, %275
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #5
  br label %281

281:                                              ; preds = %280, %242
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #5
  store i32 0, ptr %38, align 4, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #5
  %282 = load ptr, ptr %36, align 8, !tbaa !5
  %283 = getelementptr inbounds %"class.dali::exec2::ExecNode", ptr %282, i32 0, i32 1
  %284 = invoke noundef i64 @_ZNK4dali11SmallVectorINS_5exec214ExecOutputDescELm4ESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(200) %283)
          to label %285 unwind label %292

285:                                              ; preds = %281
  %286 = trunc i64 %284 to i32
  store i32 %286, ptr %39, align 4, !tbaa !38
  br label %287

287:                                              ; preds = %365, %285
  %288 = load i32, ptr %38, align 4, !tbaa !38
  %289 = load i32, ptr %39, align 4, !tbaa !38
  %290 = icmp slt i32 %288, %289
  br i1 %290, label %296, label %291

291:                                              ; preds = %287
  store i32 10, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  br label %370

292:                                              ; preds = %281
  %293 = landingpad { ptr, i32 }
          cleanup
  %294 = extractvalue { ptr, i32 } %293, 0
  store ptr %294, ptr %9, align 8
  %295 = extractvalue { ptr, i32 } %293, 1
  store i32 %295, ptr %10, align 4
  br label %369

296:                                              ; preds = %287
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #5
  %297 = load ptr, ptr %36, align 8, !tbaa !5
  %298 = getelementptr inbounds %"class.dali::exec2::ExecNode", ptr %297, i32 0, i32 1
  %299 = load i32, ptr %38, align 4, !tbaa !38
  %300 = sext i32 %299 to i64
  %301 = invoke noundef nonnull align 8 dereferenceable(46) ptr @_ZN4dali11SmallVectorINS_5exec214ExecOutputDescELm4ESaIS2_EEixEl(ptr noundef nonnull align 8 dereferenceable(200) %298, i64 noundef %300)
          to label %302 unwind label %316

302:                                              ; preds = %296
  %303 = getelementptr inbounds %"struct.dali::exec2::ExecOutputDesc", ptr %301, i32 0, i32 0
  store ptr %303, ptr %40, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %41) #5
  %304 = load ptr, ptr %40, align 8, !tbaa !5
  store ptr %304, ptr %41, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #5
  %305 = load ptr, ptr %41, align 8, !tbaa !5
  %306 = invoke noundef ptr @_ZN4dali11SmallVectorIPNS_5exec28ExecEdgeELm4ESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %305)
          to label %307 unwind label %320

307:                                              ; preds = %302
  store ptr %306, ptr %42, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %43) #5
  %308 = load ptr, ptr %41, align 8, !tbaa !5
  %309 = invoke noundef ptr @_ZN4dali11SmallVectorIPNS_5exec28ExecEdgeELm4ESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(40) %308)
          to label %310 unwind label %324

310:                                              ; preds = %307
  store ptr %309, ptr %43, align 8, !tbaa !5
  br label %311

311:                                              ; preds = %359, %310
  %312 = load ptr, ptr %42, align 8, !tbaa !5
  %313 = load ptr, ptr %43, align 8, !tbaa !5
  %314 = icmp ne ptr %312, %313
  br i1 %314, label %328, label %315

315:                                              ; preds = %311
  store i32 13, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #5
  br label %364

316:                                              ; preds = %296
  %317 = landingpad { ptr, i32 }
          cleanup
  %318 = extractvalue { ptr, i32 } %317, 0
  store ptr %318, ptr %9, align 8
  %319 = extractvalue { ptr, i32 } %317, 1
  store i32 %319, ptr %10, align 4
  br label %368

320:                                              ; preds = %302
  %321 = landingpad { ptr, i32 }
          cleanup
  %322 = extractvalue { ptr, i32 } %321, 0
  store ptr %322, ptr %9, align 8
  %323 = extractvalue { ptr, i32 } %321, 1
  store i32 %323, ptr %10, align 4
  br label %363

324:                                              ; preds = %307
  %325 = landingpad { ptr, i32 }
          cleanup
  %326 = extractvalue { ptr, i32 } %325, 0
  store ptr %326, ptr %9, align 8
  %327 = extractvalue { ptr, i32 } %325, 1
  store i32 %327, ptr %10, align 4
  br label %362

328:                                              ; preds = %311
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #5
  %329 = load ptr, ptr %42, align 8, !tbaa !5
  store ptr %329, ptr %44, align 8, !tbaa !5
  %330 = load ptr, ptr %44, align 8, !tbaa !5
  %331 = invoke noundef i64 @_ZNKSt13unordered_setIPKN4dali5exec28ExecEdgeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE5countERKS4_(ptr noundef nonnull align 8 dereferenceable(56) %11, ptr noundef nonnull align 8 dereferenceable(8) %330)
          to label %332 unwind label %336

332:                                              ; preds = %328
  %333 = icmp ne i64 %331, 0
  br i1 %333, label %340, label %334

334:                                              ; preds = %332
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA45_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 1 dereferenceable(45) @.str.12)
          to label %335 unwind label %336

335:                                              ; preds = %334
  br label %340

336:                                              ; preds = %356, %347, %334, %328
  %337 = landingpad { ptr, i32 }
          cleanup
  %338 = extractvalue { ptr, i32 } %337, 0
  store ptr %338, ptr %9, align 8
  %339 = extractvalue { ptr, i32 } %337, 1
  store i32 %339, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #5
  br label %362

340:                                              ; preds = %335, %332
  %341 = load ptr, ptr %44, align 8, !tbaa !5
  %342 = load ptr, ptr %341, align 8, !tbaa !5
  %343 = getelementptr inbounds %"struct.dali::exec2::ExecEdge", ptr %342, i32 0, i32 0
  %344 = load ptr, ptr %343, align 8, !tbaa !35
  %345 = load ptr, ptr %36, align 8, !tbaa !5
  %346 = icmp ne ptr %344, %345
  br i1 %346, label %347, label %349

347:                                              ; preds = %340
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA56_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 1 dereferenceable(56) @.str.13)
          to label %348 unwind label %336

348:                                              ; preds = %347
  br label %349

349:                                              ; preds = %348, %340
  %350 = load ptr, ptr %44, align 8, !tbaa !5
  %351 = load ptr, ptr %350, align 8, !tbaa !5
  %352 = getelementptr inbounds %"struct.dali::exec2::ExecEdge", ptr %351, i32 0, i32 2
  %353 = load i32, ptr %352, align 8, !tbaa !31
  %354 = load i32, ptr %38, align 4, !tbaa !38
  %355 = icmp ne i32 %353, %354
  br i1 %355, label %356, label %358

356:                                              ; preds = %349
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA69_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 1 dereferenceable(69) @.str.14)
          to label %357 unwind label %336

357:                                              ; preds = %356
  br label %358

358:                                              ; preds = %357, %349
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #5
  br label %359

359:                                              ; preds = %358
  %360 = load ptr, ptr %42, align 8, !tbaa !5
  %361 = getelementptr inbounds ptr, ptr %360, i32 1
  store ptr %361, ptr %42, align 8, !tbaa !5
  br label %311

362:                                              ; preds = %336, %324
  call void @llvm.lifetime.end.p0(i64 8, ptr %43) #5
  br label %363

363:                                              ; preds = %362, %320
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %41) #5
  br label %368

364:                                              ; preds = %315
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #5
  br label %365

365:                                              ; preds = %364
  %366 = load i32, ptr %38, align 4, !tbaa !38
  %367 = add nsw i32 %366, 1
  store i32 %367, ptr %38, align 4, !tbaa !38
  br label %287, !llvm.loop !39

368:                                              ; preds = %363, %316
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #5
  br label %369

369:                                              ; preds = %368, %292
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #5
  br label %447

370:                                              ; preds = %291
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #5
  store i32 0, ptr %45, align 4, !tbaa !38
  call void @llvm.lifetime.start.p0(i64 4, ptr %46) #5
  %371 = load ptr, ptr %36, align 8, !tbaa !5
  %372 = getelementptr inbounds %"class.dali::exec2::ExecNode", ptr %371, i32 0, i32 0
  %373 = invoke noundef i64 @_ZNK4dali11SmallVectorIPNS_5exec28ExecEdgeELm8ESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(72) %372)
          to label %374 unwind label %381

374:                                              ; preds = %370
  %375 = trunc i64 %373 to i32
  store i32 %375, ptr %46, align 4, !tbaa !38
  br label %376

376:                                              ; preds = %419, %374
  %377 = load i32, ptr %45, align 4, !tbaa !38
  %378 = load i32, ptr %46, align 4, !tbaa !38
  %379 = icmp slt i32 %377, %378
  br i1 %379, label %385, label %380

380:                                              ; preds = %376
  store i32 15, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #5
  br label %423

381:                                              ; preds = %370
  %382 = landingpad { ptr, i32 }
          cleanup
  %383 = extractvalue { ptr, i32 } %382, 0
  store ptr %383, ptr %9, align 8
  %384 = extractvalue { ptr, i32 } %382, 1
  store i32 %384, ptr %10, align 4
  br label %422

385:                                              ; preds = %376
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #5
  %386 = load ptr, ptr %36, align 8, !tbaa !5
  %387 = getelementptr inbounds %"class.dali::exec2::ExecNode", ptr %386, i32 0, i32 0
  %388 = load i32, ptr %45, align 4, !tbaa !38
  %389 = sext i32 %388 to i64
  %390 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4dali11SmallVectorIPNS_5exec28ExecEdgeELm8ESaIS3_EEixEl(ptr noundef nonnull align 8 dereferenceable(72) %387, i64 noundef %389)
          to label %391 unwind label %398

391:                                              ; preds = %385
  %392 = load ptr, ptr %390, align 8, !tbaa !5
  store ptr %392, ptr %47, align 8, !tbaa !5
  %393 = invoke noundef i64 @_ZNKSt13unordered_setIPKN4dali5exec28ExecEdgeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE5countERKS4_(ptr noundef nonnull align 8 dereferenceable(56) %11, ptr noundef nonnull align 8 dereferenceable(8) %47)
          to label %394 unwind label %398

394:                                              ; preds = %391
  %395 = icmp ne i64 %393, 0
  br i1 %395, label %402, label %396

396:                                              ; preds = %394
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA45_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 1 dereferenceable(45) @.str.12)
          to label %397 unwind label %398

397:                                              ; preds = %396
  br label %402

398:                                              ; preds = %416, %408, %396, %391, %385
  %399 = landingpad { ptr, i32 }
          cleanup
  %400 = extractvalue { ptr, i32 } %399, 0
  store ptr %400, ptr %9, align 8
  %401 = extractvalue { ptr, i32 } %399, 1
  store i32 %401, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #5
  br label %422

402:                                              ; preds = %397, %394
  %403 = load ptr, ptr %47, align 8, !tbaa !5
  %404 = getelementptr inbounds %"struct.dali::exec2::ExecEdge", ptr %403, i32 0, i32 1
  %405 = load ptr, ptr %404, align 8, !tbaa !36
  %406 = load ptr, ptr %36, align 8, !tbaa !5
  %407 = icmp ne ptr %405, %406
  br i1 %407, label %408, label %410

408:                                              ; preds = %402
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA55_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 1 dereferenceable(55) @.str.15)
          to label %409 unwind label %398

409:                                              ; preds = %408
  br label %410

410:                                              ; preds = %409, %402
  %411 = load ptr, ptr %47, align 8, !tbaa !5
  %412 = getelementptr inbounds %"struct.dali::exec2::ExecEdge", ptr %411, i32 0, i32 3
  %413 = load i32, ptr %412, align 4, !tbaa !37
  %414 = load i32, ptr %45, align 4, !tbaa !38
  %415 = icmp ne i32 %413, %414
  br i1 %415, label %416, label %418

416:                                              ; preds = %410
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA65_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 1 dereferenceable(65) @.str.16)
          to label %417 unwind label %398

417:                                              ; preds = %416
  br label %418

418:                                              ; preds = %417, %410
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #5
  br label %419

419:                                              ; preds = %418
  %420 = load i32, ptr %45, align 4, !tbaa !38
  %421 = add nsw i32 %420, 1
  store i32 %421, ptr %45, align 4, !tbaa !38
  br label %376, !llvm.loop !41

422:                                              ; preds = %398, %381
  call void @llvm.lifetime.end.p0(i64 4, ptr %46) #5
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #5
  br label %447

423:                                              ; preds = %380
  call void @llvm.lifetime.start.p0(i64 1, ptr %48) #5
  %424 = load ptr, ptr %36, align 8, !tbaa !5
  %425 = getelementptr inbounds %"class.dali::exec2::ExecGraph", ptr %53, i32 0, i32 0
  %426 = call noundef nonnull align 8 dereferenceable(472) ptr @_ZNSt7__cxx114listIN4dali5exec28ExecNodeESaIS3_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %425) #5
  %427 = icmp eq ptr %424, %426
  %428 = zext i1 %427 to i8
  store i8 %428, ptr %48, align 1, !tbaa !42
  %429 = load i8, ptr %48, align 1, !tbaa !42, !range !29, !noundef !30
  %430 = trunc i8 %429 to i1
  %431 = zext i1 %430 to i32
  %432 = load ptr, ptr %36, align 8, !tbaa !5
  %433 = getelementptr inbounds %"class.dali::exec2::ExecNode", ptr %432, i32 0, i32 8
  %434 = load i8, ptr %433, align 4, !tbaa !43, !range !29, !noundef !30
  %435 = trunc i8 %434 to i1
  %436 = zext i1 %435 to i32
  %437 = icmp ne i32 %431, %436
  br i1 %437, label %438, label %444

438:                                              ; preds = %423
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA81_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 1 dereferenceable(81) @.str.17)
          to label %439 unwind label %440

439:                                              ; preds = %438
  br label %444

440:                                              ; preds = %438
  %441 = landingpad { ptr, i32 }
          cleanup
  %442 = extractvalue { ptr, i32 } %441, 0
  store ptr %442, ptr %9, align 8
  %443 = extractvalue { ptr, i32 } %441, 1
  store i32 %443, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #5
  br label %447

444:                                              ; preds = %439, %423
  call void @llvm.lifetime.end.p0(i64 1, ptr %48) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  br label %445

445:                                              ; preds = %444
  %446 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14_List_iteratorIN4dali5exec28ExecNodeEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %34) #5
  br label %239

447:                                              ; preds = %440, %422, %369, %264
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #5
  br label %484

448:                                              ; preds = %241
  call void @llvm.lifetime.start.p0(i64 8, ptr %49) #5
  %449 = getelementptr inbounds %"class.dali::exec2::ExecGraph", ptr %53, i32 0, i32 0
  store ptr %449, ptr %49, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #5
  %450 = load ptr, ptr %49, align 8, !tbaa !5
  %451 = call ptr @_ZNSt7__cxx114listIN4dali5exec28ExecNodeESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %450) #5
  %452 = getelementptr inbounds %"struct.std::_List_iterator", ptr %50, i32 0, i32 0
  store ptr %451, ptr %452, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr %51) #5
  %453 = load ptr, ptr %49, align 8, !tbaa !5
  %454 = call ptr @_ZNSt7__cxx114listIN4dali5exec28ExecNodeESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %453) #5
  %455 = getelementptr inbounds %"struct.std::_List_iterator", ptr %51, i32 0, i32 0
  store ptr %454, ptr %455, align 8
  br label %456

456:                                              ; preds = %477, %448
  %457 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorIN4dali5exec28ExecNodeEES5_(ptr noundef nonnull align 8 dereferenceable(8) %50, ptr noundef nonnull align 8 dereferenceable(8) %51) #5
  br i1 %457, label %459, label %458

458:                                              ; preds = %456
  store i32 18, ptr %4, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #5
  br label %479

459:                                              ; preds = %456
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #5
  %460 = call noundef nonnull align 8 dereferenceable(472) ptr @_ZNKSt14_List_iteratorIN4dali5exec28ExecNodeEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %50) #5
  store ptr %460, ptr %52, align 8, !tbaa !5
  %461 = load ptr, ptr %52, align 8, !tbaa !5
  %462 = getelementptr inbounds %"class.dali::exec2::ExecNode", ptr %461, i32 0, i32 9
  %463 = load i8, ptr %462, align 1, !tbaa !70, !range !29, !noundef !30
  %464 = trunc i8 %463 to i1
  br i1 %464, label %465, label %476

465:                                              ; preds = %459
  %466 = load ptr, ptr %52, align 8, !tbaa !5
  %467 = getelementptr inbounds %"class.dali::exec2::ExecNode", ptr %466, i32 0, i32 0
  %468 = invoke noundef zeroext i1 @_ZNK4dali11SmallVectorIPNS_5exec28ExecEdgeELm8ESaIS3_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(72) %467)
          to label %469 unwind label %472

469:                                              ; preds = %465
  br i1 %468, label %476, label %470

470:                                              ; preds = %469
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA41_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 1 dereferenceable(41) @.str.18)
          to label %471 unwind label %472

471:                                              ; preds = %470
  br label %476

472:                                              ; preds = %470, %465
  %473 = landingpad { ptr, i32 }
          cleanup
  %474 = extractvalue { ptr, i32 } %473, 0
  store ptr %474, ptr %9, align 8
  %475 = extractvalue { ptr, i32 } %473, 1
  store i32 %475, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %51) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr %49) #5
  br label %484

476:                                              ; preds = %471, %469, %459
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #5
  br label %477

477:                                              ; preds = %476
  %478 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14_List_iteratorIN4dali5exec28ExecNodeEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %50) #5
  br label %456

479:                                              ; preds = %458
  %480 = getelementptr inbounds %"class.dali::exec2::ExecGraph", ptr %53, i32 0, i32 4
  store i8 1, ptr %480, align 1, !tbaa !9
  call void @_ZNSt13unordered_setIPKN4dali5exec28ExecEdgeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %11) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %11) #5
  call void @_ZNSt13unordered_setIPKN4dali5exec28ExecNodeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %5) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr %5) #5
  store i32 0, ptr %4, align 4
  br label %481

481:                                              ; preds = %479, %65, %57
  call void @llvm.lifetime.end.p0(i64 1, ptr %3) #5
  %482 = load i32, ptr %4, align 4
  switch i32 %482, label %492 [
    i32 0, label %483
    i32 1, label %483
  ]

483:                                              ; preds = %481, %481
  ret void

484:                                              ; preds = %472, %447, %230, %128, %102
  call void @_ZNSt13unordered_setIPKN4dali5exec28ExecEdgeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %11) #5
  br label %485

485:                                              ; preds = %484, %87
  call void @llvm.lifetime.end.p0(i64 56, ptr %11) #5
  call void @_ZNSt13unordered_setIPKN4dali5exec28ExecNodeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %5) #5
  br label %486

486:                                              ; preds = %485, %83
  call void @llvm.lifetime.end.p0(i64 56, ptr %5) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr %3) #5
  br label %487

487:                                              ; preds = %486
  %488 = load ptr, ptr %9, align 8
  %489 = load i32, ptr %10, align 4
  %490 = insertvalue { ptr, i32 } poison, ptr %488, 0
  %491 = insertvalue { ptr, i32 } %490, i32 %489, 1
  resume { ptr, i32 } %491

492:                                              ; preds = %481
  unreachable
}

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA36_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(36)) #3 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt13unordered_setIPKN4dali5exec28ExecNodeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EEC2EmRKS6_RKS8_RKS9_(ptr noundef nonnull align 8 dereferenceable(56), i64 noundef, ptr noundef nonnull align 1 dereferenceable(1), 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_allocatorIPKN4dali5exec28ExecNodeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt13unordered_setIPKN4dali5exec28ExecEdgeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EEC2EmRKS6_RKS8_RKS9_(ptr noundef nonnull align 8 dereferenceable(56), i64 noundef, ptr noundef nonnull align 1 dereferenceable(1), 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_allocatorIPKN4dali5exec28ExecEdgeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_setIPKN4dali5exec28ExecNodeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE6insertEOS4_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

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

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

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

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

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

; Function Attrs: mustprogress uwtable
declare dso_local { ptr, i8 } @_ZNSt13unordered_setIPKN4dali5exec28ExecEdgeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE6insertEOS4_(ptr noundef nonnull align 8 dereferenceable(56), ptr noundef nonnull align 8 dereferenceable(8)) #1 align 2

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA48_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(48)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK4dali11SmallVectorINS_5exec214ExecOutputDescELm4ESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(200)) #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA39_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(39)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(46) ptr @_ZN4dali11SmallVectorINS_5exec214ExecOutputDescELm4ESaIS2_EEixEl(ptr noundef nonnull align 8 dereferenceable(200), i64 noundef) #3 align 2

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA79_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(79)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN4dali11SmallVectorIPNS_5exec28ExecEdgeELm8ESaIS3_EEixEl(ptr noundef nonnull align 8 dereferenceable(72), i64 noundef) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA53_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(53)) #3 align 2

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

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

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

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK4dali11SmallVectorIPNS_5exec28ExecEdgeELm8ESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(72)) #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA64_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(64)) #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA65_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(65)) #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA45_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(45)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA56_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(56)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA69_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(69)) #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA55_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(55)) #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA81_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(81)) #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA41_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(41)) #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt13unordered_setIPKN4dali5exec28ExecEdgeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt13unordered_setIPKN4dali5exec28ExecNodeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #4 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 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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 = { 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, !25, i64 105}
!10 = !{!"_ZTSN4dali5exec29ExecGraphE", !11, i64 0, !17, i64 24, !20, i64 48, !25, i64 104, !25, i64 105, !25, i64 106, !25, i64 107, !26, i64 112}
!11 = !{!"_ZTSNSt7__cxx114listIN4dali5exec28ExecNodeESaIS3_EEE", !12, i64 0}
!12 = !{!"_ZTSNSt7__cxx1110_List_baseIN4dali5exec28ExecNodeESaIS3_EEE", !13, i64 0}
!13 = !{!"_ZTSNSt7__cxx1110_List_baseIN4dali5exec28ExecNodeESaIS3_EE10_List_implE", !14, i64 0}
!14 = !{!"_ZTSNSt8__detail17_List_node_headerE", !15, i64 0, !16, i64 16}
!15 = !{!"_ZTSNSt8__detail15_List_node_baseE", !6, i64 0, !6, i64 8}
!16 = !{!"long", !7, i64 0}
!17 = !{!"_ZTSNSt7__cxx114listIN4dali5exec28ExecEdgeESaIS3_EEE", !18, i64 0}
!18 = !{!"_ZTSNSt7__cxx1110_List_baseIN4dali5exec28ExecEdgeESaIS3_EEE", !19, i64 0}
!19 = !{!"_ZTSNSt7__cxx1110_List_baseIN4dali5exec28ExecEdgeESaIS3_EE10_List_implE", !14, i64 0}
!20 = !{!"_ZTSSt13unordered_mapISt17basic_string_viewIcSt11char_traitsIcEEPN4dali5exec28ExecNodeESt4hashIS3_ESt8equal_toIS3_ESaISt4pairIKS3_S7_EEE", !21, i64 0}
!21 = !{!"_ZTSSt10_HashtableISt17basic_string_viewIcSt11char_traitsIcEESt4pairIKS3_PN4dali5exec28ExecNodeEESaISA_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENSC_18_Mod_range_hashingENSC_20_Default_ranged_hashENSC_20_Prime_rehash_policyENSC_17_Hashtable_traitsILb1ELb0ELb1EEEE", !6, i64 0, !16, i64 8, !22, i64 16, !16, i64 24, !23, i64 32, !6, i64 48}
!22 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !6, i64 0}
!23 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !24, i64 0, !16, i64 8}
!24 = !{!"float", !7, i64 0}
!25 = !{!"bool", !7, i64 0}
!26 = !{!"_ZTSSt10shared_ptrIN4dali7tasking4TaskEE", !27, i64 0}
!27 = !{!"_ZTSSt12__shared_ptrIN4dali7tasking4TaskELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !28, i64 8}
!28 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0}
!29 = !{i8 0, i8 2}
!30 = !{}
!31 = !{!32, !33, i64 16}
!32 = !{!"_ZTSN4dali5exec28ExecEdgeE", !6, i64 0, !6, i64 8, !33, i64 16, !33, i64 20, !34, i64 24, !25, i64 28}
!33 = !{!"int", !7, i64 0}
!34 = !{!"_ZTSN4dali13StorageDeviceE", !7, i64 0}
!35 = !{!32, !6, i64 0}
!36 = !{!32, !6, i64 8}
!37 = !{!32, !33, i64 20}
!38 = !{!33, !33, i64 0}
!39 = distinct !{!39, !40}
!40 = !{!"llvm.loop.mustprogress"}
!41 = distinct !{!41, !40}
!42 = !{!25, !25, i64 0}
!43 = !{!44, !25, i64 372}
!44 = !{!"_ZTSN4dali5exec28ExecNodeE", !45, i64 0, !46, i64 72, !47, i64 272, !47, i64 288, !49, i64 304, !55, i64 312, !57, i64 336, !59, i64 368, !25, i64 372, !25, i64 373, !25, i64 374, !26, i64 376, !26, i64 392, !26, i64 408, !60, i64 424, !25, i64 432, !66, i64 440, !69, i64 456}
!45 = !{!"_ZTSN4dali11SmallVectorIPNS_5exec28ExecEdgeELm8ESaIS3_EEE", !7, i64 0, !16, i64 64}
!46 = !{!"_ZTSN4dali11SmallVectorINS_5exec214ExecOutputDescELm4ESaIS2_EEE", !7, i64 0, !16, i64 192}
!47 = !{!"_ZTSSt10shared_ptrIN4dali7tasking9SemaphoreEE", !48, i64 0}
!48 = !{!"_ZTSSt12__shared_ptrIN4dali7tasking9SemaphoreELN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !28, i64 8}
!49 = !{!"_ZTSSt10unique_ptrIN4dali12OperatorBaseESt14default_deleteIS1_EE", !50, i64 0}
!50 = !{!"_ZTSSt15__uniq_ptr_dataIN4dali12OperatorBaseESt14default_deleteIS1_ELb1ELb1EE", !51, i64 0}
!51 = !{!"_ZTSSt15__uniq_ptr_implIN4dali12OperatorBaseESt14default_deleteIS1_EE", !52, i64 0}
!52 = !{!"_ZTSSt5tupleIJPN4dali12OperatorBaseESt14default_deleteIS1_EEE", !53, i64 0}
!53 = !{!"_ZTSSt11_Tuple_implILm0EJPN4dali12OperatorBaseESt14default_deleteIS1_EEE", !54, i64 0}
!54 = !{!"_ZTSSt10_Head_baseILm0EPN4dali12OperatorBaseELb0EE", !6, i64 0}
!55 = !{!"_ZTSN4dali5exec27ExecEnvE", !6, i64 0, !56, i64 8}
!56 = !{!"_ZTSN4dali11AccessOrderE", !6, i64 0, !33, i64 8}
!57 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !58, i64 0, !16, i64 8, !7, i64 16}
!58 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!59 = !{!"_ZTSN4dali6OpTypeE", !7, i64 0}
!60 = !{!"_ZTSSt10unique_ptrIN4dali9WorkspaceESt14default_deleteIS1_EE", !61, i64 0}
!61 = !{!"_ZTSSt15__uniq_ptr_dataIN4dali9WorkspaceESt14default_deleteIS1_ELb1ELb1EE", !62, i64 0}
!62 = !{!"_ZTSSt15__uniq_ptr_implIN4dali9WorkspaceESt14default_deleteIS1_EE", !63, i64 0}
!63 = !{!"_ZTSSt5tupleIJPN4dali9WorkspaceESt14default_deleteIS1_EEE", !64, i64 0}
!64 = !{!"_ZTSSt11_Tuple_implILm0EJPN4dali9WorkspaceESt14default_deleteIS1_EEE", !65, i64 0}
!65 = !{!"_ZTSSt10_Head_baseILm0EPN4dali9WorkspaceELb0EE", !6, i64 0}
!66 = !{!"_ZTSN4dali15CUDASharedEventE", !67, i64 0}
!67 = !{!"_ZTSSt10shared_ptrIvE", !68, i64 0}
!68 = !{!"_ZTSSt12__shared_ptrIvLN9__gnu_cxx12_Lock_policyE2EE", !6, i64 0, !28, i64 8}
!69 = !{!"_ZTSSt3any", !6, i64 0, !7, i64 8}
!70 = !{!44, !25, i64 373}


; 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.anon = type { i8 }
%"class.std::unordered_set" = type { %"class.std::_Hashtable.16" }
%"class.std::_Hashtable.16" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::__detail::_Hash_node_base" = type { ptr }
%"struct.std::__detail::_Prime_rehash_policy" = type { float, i64 }
%"struct.std::hash.20" = type { i8 }
%"struct.std::equal_to.23" = type { i8 }
%"class.std::allocator.35" = type { i8 }
%"class.std::unordered_set.38" = type { %"class.std::_Hashtable.39" }
%"class.std::_Hashtable.39" = type { ptr, i64, %"struct.std::__detail::_Hash_node_base", i64, %"struct.std::__detail::_Prime_rehash_policy", ptr }
%"struct.std::hash.43" = type { i8 }
%"struct.std::equal_to.46" = type { i8 }
%"class.std::allocator.58" = type { i8 }
%"struct.std::_List_iterator" = type { ptr }
%"struct.std::_List_iterator.84" = type { ptr }

@.str.4 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [64 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [41 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

declare i32 @__gxx_personality_v0(...)

; 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
define dso_local void @_ZN4dali5exec29ExecGraph8ValidateEv(ptr noundef nonnull align 8 dereferenceable(128) %0) local_unnamed_addr #1 align 2 personality ptr @__gxx_personality_v0 {
  %2 = alloca %class.anon, align 1
  %3 = alloca %"class.std::unordered_set", align 8
  %4 = alloca %"struct.std::hash.20", align 1
  %5 = alloca %"struct.std::equal_to.23", align 1
  %6 = alloca %"class.std::allocator.35", align 1
  %7 = alloca %"class.std::unordered_set.38", align 8
  %8 = alloca %"struct.std::hash.43", align 1
  %9 = alloca %"struct.std::equal_to.46", align 1
  %10 = alloca %"class.std::allocator.58", align 1
  %11 = alloca %"struct.std::_List_iterator", align 8
  %12 = alloca %"struct.std::_List_iterator", align 8
  %13 = alloca ptr, align 8
  %14 = alloca %"struct.std::_List_iterator.84", align 8
  %15 = alloca %"struct.std::_List_iterator.84", align 8
  %16 = alloca ptr, align 8
  %17 = alloca %"struct.std::_List_iterator.84", align 8
  %18 = alloca %"struct.std::_List_iterator.84", align 8
  %19 = alloca ptr, align 8
  %20 = alloca %"struct.std::_List_iterator", align 8
  %21 = alloca %"struct.std::_List_iterator", align 8
  %22 = alloca ptr, align 8
  %23 = alloca %"struct.std::_List_iterator", align 8
  %24 = alloca %"struct.std::_List_iterator", align 8
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %2) #5
  %25 = getelementptr inbounds i8, ptr %0, i64 105
  %26 = load i8, ptr %25, align 1, !tbaa !5, !range !28, !noundef !29
  %27 = trunc nuw i8 %26 to i1
  br i1 %27, label %221, label %28

28:                                               ; preds = %1
  %29 = tail call noundef zeroext i1 @_ZNKSt7__cxx114listIN4dali5exec28ExecNodeESaIS3_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #5
  br i1 %29, label %30, label %34

30:                                               ; preds = %28
  %31 = getelementptr inbounds i8, ptr %0, i64 24
  %32 = tail call noundef zeroext i1 @_ZNKSt7__cxx114listIN4dali5exec28ExecEdgeESaIS3_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(24) %31) #5
  br i1 %32, label %221, label %33

33:                                               ; preds = %30
  call void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA36_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef nonnull align 1 dereferenceable(36) @.str.4)
  br label %221

34:                                               ; preds = %28
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %3) #5
  %35 = tail call noundef i64 @_ZNKSt7__cxx114listIN4dali5exec28ExecNodeESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %5) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %6) #5
  call void @_ZNSaIPKN4dali5exec28ExecNodeEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #5
  invoke void @_ZNSt13unordered_setIPKN4dali5exec28ExecNodeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EEC2EmRKS6_RKS8_RKS9_(ptr noundef nonnull align 8 dereferenceable(56) %3, i64 noundef %35, ptr noundef nonnull align 1 dereferenceable(1) %4, ptr noundef nonnull align 1 dereferenceable(1) %5, ptr noundef nonnull align 1 dereferenceable(1) %6)
          to label %36 unwind label %46

36:                                               ; preds = %34
  call void @_ZNSt15__new_allocatorIPKN4dali5exec28ExecNodeEED2Ev(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 1, ptr nonnull %5) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #5
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %7) #5
  %37 = getelementptr inbounds i8, ptr %0, i64 24
  %38 = call noundef i64 @_ZNKSt7__cxx114listIN4dali5exec28ExecEdgeESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %37) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %10) #5
  call void @_ZNSaIPKN4dali5exec28ExecEdgeEEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #5
  invoke void @_ZNSt13unordered_setIPKN4dali5exec28ExecEdgeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EEC2EmRKS6_RKS8_RKS9_(ptr noundef nonnull align 8 dereferenceable(56) %7, i64 noundef %38, ptr noundef nonnull align 1 dereferenceable(1) %8, ptr noundef nonnull align 1 dereferenceable(1) %9, ptr noundef nonnull align 1 dereferenceable(1) %10)
          to label %39 unwind label %48

39:                                               ; preds = %36
  call void @_ZNSt15__new_allocatorIPKN4dali5exec28ExecEdgeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #5
  %40 = call ptr @_ZNSt7__cxx114listIN4dali5exec28ExecNodeESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #5
  store ptr %40, ptr %11, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #5
  %41 = call ptr @_ZNSt7__cxx114listIN4dali5exec28ExecNodeESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #5
  store ptr %41, ptr %12, align 8
  %42 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorIN4dali5exec28ExecNodeEES5_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #5
  br i1 %42, label %.lr.ph, label %._crit_edge

._crit_edge:                                      ; preds = %52, %39
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #5
  %43 = call ptr @_ZNSt7__cxx114listIN4dali5exec28ExecEdgeESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %37) #5
  store ptr %43, ptr %14, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #5
  %44 = call ptr @_ZNSt7__cxx114listIN4dali5exec28ExecEdgeESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %37) #5
  store ptr %44, ptr %15, align 8
  %45 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorIN4dali5exec28ExecEdgeEES5_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %15) #5
  br i1 %45, label %.lr.ph103, label %._crit_edge104

46:                                               ; preds = %34
  %47 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIPKN4dali5exec28ExecNodeEED2Ev(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 1, ptr nonnull %5) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #5
  br label %224

48:                                               ; preds = %36
  %49 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt15__new_allocatorIPKN4dali5exec28ExecEdgeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %10) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #5
  br label %223

.lr.ph:                                           ; preds = %39, %52
  %50 = call noundef nonnull align 8 dereferenceable(472) ptr @_ZNKSt14_List_iteratorIN4dali5exec28ExecNodeEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #5
  store ptr %50, ptr %13, align 8, !tbaa !30
  %51 = invoke { ptr, i8 } @_ZNSt13unordered_setIPKN4dali5exec28ExecNodeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE6insertEOS4_(ptr noundef nonnull align 8 dereferenceable(56) %3, ptr noundef nonnull align 8 dereferenceable(8) %13)
          to label %52 unwind label %55

52:                                               ; preds = %.lr.ph
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #5
  %53 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14_List_iteratorIN4dali5exec28ExecNodeEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %11) #5
  %54 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorIN4dali5exec28ExecNodeEES5_(ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12) #5
  br i1 %54, label %.lr.ph, label %._crit_edge

55:                                               ; preds = %.lr.ph
  %56 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #5
  br label %222

._crit_edge104:                                   ; preds = %62, %._crit_edge
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %17) #5
  %57 = call ptr @_ZNSt7__cxx114listIN4dali5exec28ExecEdgeESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %37) #5
  store ptr %57, ptr %17, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #5
  %58 = call ptr @_ZNSt7__cxx114listIN4dali5exec28ExecEdgeESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %37) #5
  store ptr %58, ptr %18, align 8
  %59 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorIN4dali5exec28ExecEdgeEES5_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %18) #5
  br i1 %59, label %.lr.ph106, label %._crit_edge107

.lr.ph103:                                        ; preds = %._crit_edge, %62
  %60 = call noundef nonnull align 8 dereferenceable(29) ptr @_ZNKSt14_List_iteratorIN4dali5exec28ExecEdgeEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %14) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #5
  store ptr %60, ptr %16, align 8, !tbaa !30
  %61 = invoke { ptr, i8 } @_ZNSt13unordered_setIPKN4dali5exec28ExecEdgeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE6insertEOS4_(ptr noundef nonnull align 8 dereferenceable(56) %7, ptr noundef nonnull align 8 dereferenceable(8) %16)
          to label %62 unwind label %65

62:                                               ; preds = %.lr.ph103
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #5
  %63 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14_List_iteratorIN4dali5exec28ExecEdgeEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %14) #5
  %64 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorIN4dali5exec28ExecEdgeEES5_(ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef nonnull align 8 dereferenceable(8) %15) #5
  br i1 %64, label %.lr.ph103, label %._crit_edge104

65:                                               ; preds = %.lr.ph103
  %66 = 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 %15) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #5
  br label %222

._crit_edge107:                                   ; preds = %116, %._crit_edge104
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #5
  %67 = call ptr @_ZNSt7__cxx114listIN4dali5exec28ExecNodeESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #5
  store ptr %67, ptr %20, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #5
  %68 = call ptr @_ZNSt7__cxx114listIN4dali5exec28ExecNodeESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #5
  store ptr %68, ptr %21, align 8
  %69 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorIN4dali5exec28ExecNodeEES5_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %21) #5
  br i1 %69, label %.lr.ph121, label %._crit_edge122

.lr.ph106:                                        ; preds = %._crit_edge104, %116
  %70 = call noundef nonnull align 8 dereferenceable(29) ptr @_ZNKSt14_List_iteratorIN4dali5exec28ExecEdgeEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #5
  %71 = invoke noundef i64 @_ZNKSt13unordered_setIPKN4dali5exec28ExecNodeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE5countERKS4_(ptr noundef nonnull align 8 dereferenceable(56) %3, ptr noundef nonnull align 8 dereferenceable(8) %70)
          to label %72 unwind label %74

72:                                               ; preds = %.lr.ph106
  %.not90 = icmp eq i64 %71, 0
  br i1 %.not90, label %73, label %76

73:                                               ; preds = %72
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA48_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef nonnull align 1 dereferenceable(48) @.str.5)
          to label %76 unwind label %74

74:                                               ; preds = %88, %80, %76, %73, %.lr.ph106
  %75 = landingpad { ptr, i32 }
          cleanup
  br label %119

76:                                               ; preds = %73, %72
  %77 = getelementptr inbounds i8, ptr %70, i64 8
  %78 = invoke noundef i64 @_ZNKSt13unordered_setIPKN4dali5exec28ExecNodeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE5countERKS4_(ptr noundef nonnull align 8 dereferenceable(56) %3, ptr noundef nonnull align 8 dereferenceable(8) %77)
          to label %79 unwind label %74

79:                                               ; preds = %76
  %.not91 = icmp eq i64 %78, 0
  br i1 %.not91, label %80, label %81

80:                                               ; preds = %79
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA48_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef nonnull align 1 dereferenceable(48) @.str.6)
          to label %81 unwind label %74

81:                                               ; preds = %80, %79
  %82 = getelementptr inbounds i8, ptr %70, i64 16
  %83 = load i32, ptr %82, align 8, !tbaa !31
  %84 = load ptr, ptr %70, align 8, !tbaa !35
  %85 = getelementptr inbounds i8, ptr %84, i64 72
  %86 = call noundef i64 @_ZNK4dali11SmallVectorINS_5exec214ExecOutputDescELm4ESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(200) %85)
  %87 = trunc i64 %86 to i32
  %.not92 = icmp slt i32 %83, %87
  br i1 %.not92, label %89, label %88

88:                                               ; preds = %81
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA39_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef nonnull align 1 dereferenceable(39) @.str.7)
          to label %89 unwind label %74

89:                                               ; preds = %88, %81
  %90 = load ptr, ptr %70, align 8, !tbaa !35
  %91 = getelementptr inbounds i8, ptr %90, i64 72
  %92 = load i32, ptr %82, align 8, !tbaa !31
  %93 = sext i32 %92 to i64
  %94 = invoke noundef nonnull align 8 dereferenceable(46) ptr @_ZN4dali11SmallVectorINS_5exec214ExecOutputDescELm4ESaIS2_EEixEl(ptr noundef nonnull align 8 dereferenceable(200) %91, i64 noundef %93)
          to label %95 unwind label %103

95:                                               ; preds = %89
  %96 = invoke noundef ptr @_ZN4dali11SmallVectorIPNS_5exec28ExecEdgeELm4ESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %94)
          to label %97 unwind label %103

97:                                               ; preds = %95
  %98 = invoke noundef ptr @_ZN4dali11SmallVectorIPNS_5exec28ExecEdgeELm4ESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(40) %94)
          to label %99 unwind label %103

99:                                               ; preds = %97
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #5
  store ptr %70, ptr %19, align 8, !tbaa !30
  %100 = invoke noundef i64 @_ZSt5countIPPN4dali5exec28ExecEdgeES3_ENSt15iterator_traitsIT_E15difference_typeES6_S6_RKT0_(ptr noundef %96, ptr noundef %98, ptr noundef nonnull align 8 dereferenceable(8) %19)
          to label %101 unwind label %105

101:                                              ; preds = %99
  %.not93 = icmp eq i64 %100, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #5
  br i1 %.not93, label %107, label %102

102:                                              ; preds = %101
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA79_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef nonnull align 1 dereferenceable(79) @.str.8)
          to label %107 unwind label %103

103:                                              ; preds = %115, %107, %102, %97, %95, %89
  %104 = landingpad { ptr, i32 }
          cleanup
  br label %119

105:                                              ; preds = %99
  %106 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #5
  br label %119

107:                                              ; preds = %102, %101
  %108 = load ptr, ptr %77, align 8, !tbaa !36
  %109 = getelementptr inbounds i8, ptr %70, i64 20
  %110 = load i32, ptr %109, align 4, !tbaa !37
  %111 = sext i32 %110 to i64
  %112 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4dali11SmallVectorIPNS_5exec28ExecEdgeELm8ESaIS3_EEixEl(ptr noundef nonnull align 8 dereferenceable(72) %108, i64 noundef %111)
          to label %113 unwind label %103

113:                                              ; preds = %107
  %114 = load ptr, ptr %112, align 8, !tbaa !30
  %.not94 = icmp eq ptr %114, %70
  br i1 %.not94, label %116, label %115

115:                                              ; preds = %113
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA53_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef nonnull align 1 dereferenceable(53) @.str.9)
          to label %116 unwind label %103

116:                                              ; preds = %115, %113
  %117 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14_List_iteratorIN4dali5exec28ExecEdgeEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %17) #5
  %118 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorIN4dali5exec28ExecEdgeEES5_(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(8) %18) #5
  br i1 %118, label %.lr.ph106, label %._crit_edge107

119:                                              ; preds = %103, %105, %74
  %.pn95.pn = phi { ptr, i32 } [ %75, %74 ], [ %104, %103 ], [ %106, %105 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %17) #5
  br label %222

._crit_edge122:                                   ; preds = %205, %._crit_edge107
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %23) #5
  %120 = call ptr @_ZNSt7__cxx114listIN4dali5exec28ExecNodeESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #5
  store ptr %120, ptr %23, align 8
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #5
  %121 = call ptr @_ZNSt7__cxx114listIN4dali5exec28ExecNodeESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #5
  store ptr %121, ptr %24, align 8
  %122 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorIN4dali5exec28ExecNodeEES5_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %24) #5
  br i1 %122, label %.lr.ph124, label %._crit_edge125

.lr.ph121:                                        ; preds = %._crit_edge107, %205
  %123 = call noundef nonnull align 8 dereferenceable(472) ptr @_ZNKSt14_List_iteratorIN4dali5exec28ExecNodeEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #5
  %124 = getelementptr inbounds i8, ptr %123, i64 304
  %125 = call noundef zeroext i1 @_ZNKSt10unique_ptrIN4dali12OperatorBaseESt14default_deleteIS1_EEcvbEv(ptr noundef nonnull align 8 dereferenceable(8) %124) #5
  br i1 %125, label %126, label %141

126:                                              ; preds = %.lr.ph121
  %127 = call noundef ptr @_ZNKSt10unique_ptrIN4dali12OperatorBaseESt14default_deleteIS1_EEptEv(ptr noundef nonnull align 8 dereferenceable(8) %124) #5
  %128 = call noundef nonnull align 8 dereferenceable(328) ptr @_ZNK4dali12OperatorBase7GetSpecEv(ptr noundef nonnull align 8 dereferenceable(400) %127)
  %129 = call noundef i64 @_ZNK4dali11SmallVectorIPNS_5exec28ExecEdgeELm8ESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(72) %123)
  %130 = call noundef i32 @_ZNK4dali6OpSpec8NumInputEv(ptr noundef nonnull align 8 dereferenceable(328) %128)
  %131 = sext i32 %130 to i64
  %.not = icmp eq i64 %129, %131
  br i1 %.not, label %135, label %132

132:                                              ; preds = %126
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA64_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef nonnull align 1 dereferenceable(64) @.str.10)
          to label %135 unwind label %133

133:                                              ; preds = %140, %132
  %134 = landingpad { ptr, i32 }
          cleanup
  br label %208

135:                                              ; preds = %132, %126
  %136 = getelementptr inbounds i8, ptr %123, i64 72
  %137 = call noundef i64 @_ZNK4dali11SmallVectorINS_5exec214ExecOutputDescELm4ESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(200) %136)
  %138 = call noundef i32 @_ZNK4dali6OpSpec9NumOutputEv(ptr noundef nonnull align 8 dereferenceable(328) %128)
  %139 = sext i32 %138 to i64
  %.not77 = icmp eq i64 %137, %139
  br i1 %.not77, label %141, label %140

140:                                              ; preds = %135
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA65_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef nonnull align 1 dereferenceable(65) @.str.11)
          to label %141 unwind label %133

141:                                              ; preds = %135, %140, %.lr.ph121
  %142 = getelementptr inbounds i8, ptr %123, i64 72
  %143 = call noundef i64 @_ZNK4dali11SmallVectorINS_5exec214ExecOutputDescELm4ESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(200) %142)
  %144 = trunc i64 %143 to i32
  %145 = icmp sgt i32 %144, 0
  br i1 %145, label %.lr.ph114.preheader, label %._crit_edge115

.lr.ph114.preheader:                              ; preds = %141
  %wide.trip.count = and i64 %143, 2147483647
  br label %.lr.ph114

._crit_edge115:                                   ; preds = %._crit_edge111, %141
  %146 = call noundef i64 @_ZNK4dali11SmallVectorIPNS_5exec28ExecEdgeELm8ESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(72) %123)
  %147 = trunc i64 %146 to i32
  %148 = icmp sgt i32 %147, 0
  br i1 %148, label %.lr.ph118.preheader, label %._crit_edge119

.lr.ph118.preheader:                              ; preds = %._crit_edge115
  %wide.trip.count130 = and i64 %146, 2147483647
  br label %.lr.ph118

.lr.ph114:                                        ; preds = %.lr.ph114.preheader, %._crit_edge111
  %indvars.iv = phi i64 [ 0, %.lr.ph114.preheader ], [ %indvars.iv.next, %._crit_edge111 ]
  %149 = invoke noundef nonnull align 8 dereferenceable(46) ptr @_ZN4dali11SmallVectorINS_5exec214ExecOutputDescELm4ESaIS2_EEixEl(ptr noundef nonnull align 8 dereferenceable(200) %142, i64 noundef %indvars.iv)
          to label %150 unwind label %154

150:                                              ; preds = %.lr.ph114
  %151 = invoke noundef ptr @_ZN4dali11SmallVectorIPNS_5exec28ExecEdgeELm4ESaIS3_EE5beginEv(ptr noundef nonnull align 8 dereferenceable(40) %149)
          to label %152 unwind label %156

152:                                              ; preds = %150
  %153 = invoke noundef ptr @_ZN4dali11SmallVectorIPNS_5exec28ExecEdgeELm4ESaIS3_EE3endEv(ptr noundef nonnull align 8 dereferenceable(40) %149)
          to label %.preheader unwind label %158

.preheader:                                       ; preds = %152
  %.not82108 = icmp eq ptr %151, %153
  br i1 %.not82108, label %._crit_edge111, label %.lr.ph110

._crit_edge111:                                   ; preds = %175, %.preheader
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge115, label %.lr.ph114, !llvm.loop !38

154:                                              ; preds = %.lr.ph114
  %155 = landingpad { ptr, i32 }
          cleanup
  br label %208

156:                                              ; preds = %150
  %157 = landingpad { ptr, i32 }
          cleanup
  br label %208

158:                                              ; preds = %152
  %159 = landingpad { ptr, i32 }
          cleanup
  br label %208

.lr.ph110:                                        ; preds = %.preheader, %175
  %.076109 = phi ptr [ %176, %175 ], [ %151, %.preheader ]
  %160 = invoke noundef i64 @_ZNKSt13unordered_setIPKN4dali5exec28ExecEdgeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE5countERKS4_(ptr noundef nonnull align 8 dereferenceable(56) %7, ptr noundef nonnull align 8 dereferenceable(8) %.076109)
          to label %161 unwind label %163

161:                                              ; preds = %.lr.ph110
  %.not83 = icmp eq i64 %160, 0
  br i1 %.not83, label %162, label %165

162:                                              ; preds = %161
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA45_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef nonnull align 1 dereferenceable(45) @.str.12)
          to label %165 unwind label %163

163:                                              ; preds = %174, %168, %162, %.lr.ph110
  %164 = landingpad { ptr, i32 }
          cleanup
  br label %208

165:                                              ; preds = %162, %161
  %166 = load ptr, ptr %.076109, align 8, !tbaa !30
  %167 = load ptr, ptr %166, align 8, !tbaa !35
  %.not84 = icmp eq ptr %167, %123
  br i1 %.not84, label %169, label %168

168:                                              ; preds = %165
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA56_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef nonnull align 1 dereferenceable(56) @.str.13)
          to label %._crit_edge132 unwind label %163

._crit_edge132:                                   ; preds = %168
  %.pre = load ptr, ptr %.076109, align 8, !tbaa !30
  br label %169

169:                                              ; preds = %._crit_edge132, %165
  %170 = phi ptr [ %.pre, %._crit_edge132 ], [ %166, %165 ]
  %171 = getelementptr inbounds i8, ptr %170, i64 16
  %172 = load i32, ptr %171, align 8, !tbaa !31
  %173 = zext i32 %172 to i64
  %.not85 = icmp eq i64 %indvars.iv, %173
  br i1 %.not85, label %175, label %174

174:                                              ; preds = %169
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA69_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef nonnull align 1 dereferenceable(69) @.str.14)
          to label %175 unwind label %163

175:                                              ; preds = %174, %169
  %176 = getelementptr inbounds i8, ptr %.076109, i64 8
  %.not82 = icmp eq ptr %176, %153
  br i1 %.not82, label %._crit_edge111, label %.lr.ph110

._crit_edge119:                                   ; preds = %201, %._crit_edge115
  %177 = call noundef nonnull align 8 dereferenceable(472) ptr @_ZNSt7__cxx114listIN4dali5exec28ExecNodeESaIS3_EE4backEv(ptr noundef nonnull align 8 dereferenceable(24) %0) #5
  %178 = icmp eq ptr %123, %177
  %179 = getelementptr inbounds i8, ptr %123, i64 372
  %180 = load i8, ptr %179, align 4, !tbaa !40, !range !28, !noundef !29
  %181 = zext i1 %178 to i8
  %.not78 = icmp eq i8 %180, %181
  br i1 %.not78, label %205, label %202

.lr.ph118:                                        ; preds = %.lr.ph118.preheader, %201
  %indvars.iv127 = phi i64 [ 0, %.lr.ph118.preheader ], [ %indvars.iv.next128, %201 ]
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %22) #5
  %182 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZN4dali11SmallVectorIPNS_5exec28ExecEdgeELm8ESaIS3_EEixEl(ptr noundef nonnull align 8 dereferenceable(72) %123, i64 noundef %indvars.iv127)
          to label %183 unwind label %188

183:                                              ; preds = %.lr.ph118
  %184 = load ptr, ptr %182, align 8, !tbaa !30
  store ptr %184, ptr %22, align 8, !tbaa !30
  %185 = invoke noundef i64 @_ZNKSt13unordered_setIPKN4dali5exec28ExecEdgeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EE5countERKS4_(ptr noundef nonnull align 8 dereferenceable(56) %7, ptr noundef nonnull align 8 dereferenceable(8) %22)
          to label %186 unwind label %188

186:                                              ; preds = %183
  %.not79 = icmp eq i64 %185, 0
  br i1 %.not79, label %187, label %190

187:                                              ; preds = %186
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA45_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef nonnull align 1 dereferenceable(45) @.str.12)
          to label %190 unwind label %188

188:                                              ; preds = %200, %194, %187, %183, %.lr.ph118
  %189 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #5
  br label %208

190:                                              ; preds = %187, %186
  %191 = load ptr, ptr %22, align 8, !tbaa !30
  %192 = getelementptr inbounds i8, ptr %191, i64 8
  %193 = load ptr, ptr %192, align 8, !tbaa !36
  %.not80 = icmp eq ptr %193, %123
  br i1 %.not80, label %195, label %194

194:                                              ; preds = %190
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA55_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef nonnull align 1 dereferenceable(55) @.str.15)
          to label %._crit_edge133 unwind label %188

._crit_edge133:                                   ; preds = %194
  %.pre134 = load ptr, ptr %22, align 8, !tbaa !30
  br label %195

195:                                              ; preds = %._crit_edge133, %190
  %196 = phi ptr [ %.pre134, %._crit_edge133 ], [ %191, %190 ]
  %197 = getelementptr inbounds i8, ptr %196, i64 20
  %198 = load i32, ptr %197, align 4, !tbaa !37
  %199 = zext i32 %198 to i64
  %.not81 = icmp eq i64 %indvars.iv127, %199
  br i1 %.not81, label %201, label %200

200:                                              ; preds = %195
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA65_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef nonnull align 1 dereferenceable(65) @.str.16)
          to label %201 unwind label %188

201:                                              ; preds = %200, %195
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %22) #5
  %indvars.iv.next128 = add nuw nsw i64 %indvars.iv127, 1
  %exitcond131.not = icmp eq i64 %indvars.iv.next128, %wide.trip.count130
  br i1 %exitcond131.not, label %._crit_edge119, label %.lr.ph118, !llvm.loop !67

202:                                              ; preds = %._crit_edge119
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA81_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef nonnull align 1 dereferenceable(81) @.str.17)
          to label %205 unwind label %203

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

205:                                              ; preds = %202, %._crit_edge119
  %206 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14_List_iteratorIN4dali5exec28ExecNodeEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %20) #5
  %207 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorIN4dali5exec28ExecNodeEES5_(ptr noundef nonnull align 8 dereferenceable(8) %20, ptr noundef nonnull align 8 dereferenceable(8) %21) #5
  br i1 %207, label %.lr.ph121, label %._crit_edge122

208:                                              ; preds = %154, %158, %163, %156, %203, %188, %133
  %.pn.pn.pn.pn = phi { ptr, i32 } [ %189, %188 ], [ %204, %203 ], [ %134, %133 ], [ %155, %154 ], [ %157, %156 ], [ %164, %163 ], [ %159, %158 ]
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #5
  br label %222

._crit_edge125:                                   ; preds = %218, %._crit_edge122
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #5
  store i8 1, ptr %25, align 1, !tbaa !5
  call void @_ZNSt13unordered_setIPKN4dali5exec28ExecEdgeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %7) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %7) #5
  call void @_ZNSt13unordered_setIPKN4dali5exec28ExecNodeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %3) #5
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %3) #5
  br label %221

.lr.ph124:                                        ; preds = %._crit_edge122, %218
  %209 = call noundef nonnull align 8 dereferenceable(472) ptr @_ZNKSt14_List_iteratorIN4dali5exec28ExecNodeEEdeEv(ptr noundef nonnull align 8 dereferenceable(8) %23) #5
  %210 = getelementptr inbounds i8, ptr %209, i64 373
  %211 = load i8, ptr %210, align 1, !tbaa !68, !range !28, !noundef !29
  %212 = trunc nuw i8 %211 to i1
  br i1 %212, label %213, label %218

213:                                              ; preds = %.lr.ph124
  %214 = call noundef zeroext i1 @_ZNK4dali11SmallVectorIPNS_5exec28ExecEdgeELm8ESaIS3_EE5emptyEv(ptr noundef nonnull align 8 dereferenceable(72) %209)
  br i1 %214, label %218, label %215

215:                                              ; preds = %213
  invoke void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA41_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef nonnull align 1 dereferenceable(41) @.str.18)
          to label %218 unwind label %216

216:                                              ; preds = %215
  %217 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #5
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %23) #5
  br label %222

218:                                              ; preds = %215, %213, %.lr.ph124
  %219 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt14_List_iteratorIN4dali5exec28ExecNodeEEppEv(ptr noundef nonnull align 8 dereferenceable(8) %23) #5
  %220 = call noundef zeroext i1 @_ZStneRKSt14_List_iteratorIN4dali5exec28ExecNodeEES5_(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(8) %24) #5
  br i1 %220, label %.lr.ph124, label %._crit_edge125

221:                                              ; preds = %30, %33, %1, %._crit_edge125
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %2) #5
  ret void

222:                                              ; preds = %216, %208, %119, %65, %55
  %.pn98 = phi { ptr, i32 } [ %56, %55 ], [ %66, %65 ], [ %.pn95.pn, %119 ], [ %.pn.pn.pn.pn, %208 ], [ %217, %216 ]
  call void @_ZNSt13unordered_setIPKN4dali5exec28ExecEdgeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %7) #5
  br label %223

223:                                              ; preds = %222, %48
  %.pn98.pn = phi { ptr, i32 } [ %.pn98, %222 ], [ %49, %48 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %7) #5
  call void @_ZNSt13unordered_setIPKN4dali5exec28ExecNodeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56) %3) #5
  br label %224

224:                                              ; preds = %223, %46
  %.pn98.pn.pn = phi { ptr, i32 } [ %.pn98.pn, %223 ], [ %47, %46 ]
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %3) #5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %2) #5
  resume { ptr, i32 } %.pn98.pn.pn
}

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA36_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(36)) local_unnamed_addr #3 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt13unordered_setIPKN4dali5exec28ExecNodeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EEC2EmRKS6_RKS8_RKS9_(ptr noundef nonnull align 8 dereferenceable(56), i64 noundef, ptr noundef nonnull align 1 dereferenceable(1), 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_allocatorIPKN4dali5exec28ExecNodeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

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

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

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZNSt13unordered_setIPKN4dali5exec28ExecEdgeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EEC2EmRKS6_RKS8_RKS9_(ptr noundef nonnull align 8 dereferenceable(56), i64 noundef, ptr noundef nonnull align 1 dereferenceable(1), 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_allocatorIPKN4dali5exec28ExecEdgeEED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #2 align 2

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA48_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(48)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK4dali11SmallVectorINS_5exec214ExecOutputDescELm4ESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(200)) local_unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA39_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(39)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(46) ptr @_ZN4dali11SmallVectorINS_5exec214ExecOutputDescELm4ESaIS2_EEixEl(ptr noundef nonnull align 8 dereferenceable(200), i64 noundef) local_unnamed_addr #3 align 2

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA79_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(79)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(8) ptr @_ZN4dali11SmallVectorIPNS_5exec28ExecEdgeELm8ESaIS3_EEixEl(ptr noundef nonnull align 8 dereferenceable(72), i64 noundef) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA53_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(53)) local_unnamed_addr #3 align 2

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

; Function Attrs: mustprogress nounwind uwtable
declare dso_local noundef ptr @_ZNKSt10unique_ptrIN4dali12OperatorBaseESt14default_deleteIS1_EEptEv(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(328) ptr @_ZNK4dali12OperatorBase7GetSpecEv(ptr noundef nonnull align 8 dereferenceable(400)) local_unnamed_addr #2 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local noundef i64 @_ZNK4dali11SmallVectorIPNS_5exec28ExecEdgeELm8ESaIS3_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(72)) local_unnamed_addr #4 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA64_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(64)) local_unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA65_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(65)) local_unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA45_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(45)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA56_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(56)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA69_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(69)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA55_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(55)) local_unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA81_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(81)) local_unnamed_addr #3 align 2

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

; Function Attrs: inlinehint mustprogress uwtable
declare hidden void @"_ZZN4dali5exec29ExecGraph8ValidateEvENK3$_0clIJRA41_KcEEEDaDpOT_"(ptr noundef nonnull align 1 dereferenceable(1), ptr noundef nonnull align 1 dereferenceable(41)) local_unnamed_addr #3 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt13unordered_setIPKN4dali5exec28ExecEdgeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #4 align 2

; Function Attrs: inlinehint mustprogress nounwind uwtable
declare dso_local void @_ZNSt13unordered_setIPKN4dali5exec28ExecNodeESt4hashIS4_ESt8equal_toIS4_ESaIS4_EED2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #4 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 uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { inlinehint mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { 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, !24, i64 105}
!6 = !{!"_ZTSN4dali5exec29ExecGraphE", !7, i64 0, !16, i64 24, !19, i64 48, !24, i64 104, !24, i64 105, !24, i64 106, !24, i64 107, !25, i64 112}
!7 = !{!"_ZTSNSt7__cxx114listIN4dali5exec28ExecNodeESaIS3_EEE", !8, i64 0}
!8 = !{!"_ZTSNSt7__cxx1110_List_baseIN4dali5exec28ExecNodeESaIS3_EEE", !9, i64 0}
!9 = !{!"_ZTSNSt7__cxx1110_List_baseIN4dali5exec28ExecNodeESaIS3_EE10_List_implE", !10, i64 0}
!10 = !{!"_ZTSNSt8__detail17_List_node_headerE", !11, i64 0, !15, i64 16}
!11 = !{!"_ZTSNSt8__detail15_List_node_baseE", !12, i64 0, !12, i64 8}
!12 = !{!"any pointer", !13, i64 0}
!13 = !{!"omnipotent char", !14, i64 0}
!14 = !{!"Simple C++ TBAA"}
!15 = !{!"long", !13, i64 0}
!16 = !{!"_ZTSNSt7__cxx114listIN4dali5exec28ExecEdgeESaIS3_EEE", !17, i64 0}
!17 = !{!"_ZTSNSt7__cxx1110_List_baseIN4dali5exec28ExecEdgeESaIS3_EEE", !18, i64 0}
!18 = !{!"_ZTSNSt7__cxx1110_List_baseIN4dali5exec28ExecEdgeESaIS3_EE10_List_implE", !10, i64 0}
!19 = !{!"_ZTSSt13unordered_mapISt17basic_string_viewIcSt11char_traitsIcEEPN4dali5exec28ExecNodeESt4hashIS3_ESt8equal_toIS3_ESaISt4pairIKS3_S7_EEE", !20, i64 0}
!20 = !{!"_ZTSSt10_HashtableISt17basic_string_viewIcSt11char_traitsIcEESt4pairIKS3_PN4dali5exec28ExecNodeEESaISA_ENSt8__detail10_Select1stESt8equal_toIS3_ESt4hashIS3_ENSC_18_Mod_range_hashingENSC_20_Default_ranged_hashENSC_20_Prime_rehash_policyENSC_17_Hashtable_traitsILb1ELb0ELb1EEEE", !12, i64 0, !15, i64 8, !21, i64 16, !15, i64 24, !22, i64 32, !12, i64 48}
!21 = !{!"_ZTSNSt8__detail15_Hash_node_baseE", !12, i64 0}
!22 = !{!"_ZTSNSt8__detail20_Prime_rehash_policyE", !23, i64 0, !15, i64 8}
!23 = !{!"float", !13, i64 0}
!24 = !{!"bool", !13, i64 0}
!25 = !{!"_ZTSSt10shared_ptrIN4dali7tasking4TaskEE", !26, i64 0}
!26 = !{!"_ZTSSt12__shared_ptrIN4dali7tasking4TaskELN9__gnu_cxx12_Lock_policyE2EE", !12, i64 0, !27, i64 8}
!27 = !{!"_ZTSSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EE", !12, i64 0}
!28 = !{i8 0, i8 2}
!29 = !{}
!30 = !{!12, !12, i64 0}
!31 = !{!32, !33, i64 16}
!32 = !{!"_ZTSN4dali5exec28ExecEdgeE", !12, i64 0, !12, i64 8, !33, i64 16, !33, i64 20, !34, i64 24, !24, i64 28}
!33 = !{!"int", !13, i64 0}
!34 = !{!"_ZTSN4dali13StorageDeviceE", !13, i64 0}
!35 = !{!32, !12, i64 0}
!36 = !{!32, !12, i64 8}
!37 = !{!32, !33, i64 20}
!38 = distinct !{!38, !39}
!39 = !{!"llvm.loop.mustprogress"}
!40 = !{!41, !24, i64 372}
!41 = !{!"_ZTSN4dali5exec28ExecNodeE", !42, i64 0, !43, i64 72, !44, i64 272, !44, i64 288, !46, i64 304, !52, i64 312, !54, i64 336, !56, i64 368, !24, i64 372, !24, i64 373, !24, i64 374, !25, i64 376, !25, i64 392, !25, i64 408, !57, i64 424, !24, i64 432, !63, i64 440, !66, i64 456}
!42 = !{!"_ZTSN4dali11SmallVectorIPNS_5exec28ExecEdgeELm8ESaIS3_EEE", !13, i64 0, !15, i64 64}
!43 = !{!"_ZTSN4dali11SmallVectorINS_5exec214ExecOutputDescELm4ESaIS2_EEE", !13, i64 0, !15, i64 192}
!44 = !{!"_ZTSSt10shared_ptrIN4dali7tasking9SemaphoreEE", !45, i64 0}
!45 = !{!"_ZTSSt12__shared_ptrIN4dali7tasking9SemaphoreELN9__gnu_cxx12_Lock_policyE2EE", !12, i64 0, !27, i64 8}
!46 = !{!"_ZTSSt10unique_ptrIN4dali12OperatorBaseESt14default_deleteIS1_EE", !47, i64 0}
!47 = !{!"_ZTSSt15__uniq_ptr_dataIN4dali12OperatorBaseESt14default_deleteIS1_ELb1ELb1EE", !48, i64 0}
!48 = !{!"_ZTSSt15__uniq_ptr_implIN4dali12OperatorBaseESt14default_deleteIS1_EE", !49, i64 0}
!49 = !{!"_ZTSSt5tupleIJPN4dali12OperatorBaseESt14default_deleteIS1_EEE", !50, i64 0}
!50 = !{!"_ZTSSt11_Tuple_implILm0EJPN4dali12OperatorBaseESt14default_deleteIS1_EEE", !51, i64 0}
!51 = !{!"_ZTSSt10_Head_baseILm0EPN4dali12OperatorBaseELb0EE", !12, i64 0}
!52 = !{!"_ZTSN4dali5exec27ExecEnvE", !12, i64 0, !53, i64 8}
!53 = !{!"_ZTSN4dali11AccessOrderE", !12, i64 0, !33, i64 8}
!54 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !55, i64 0, !15, i64 8, !13, i64 16}
!55 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !12, i64 0}
!56 = !{!"_ZTSN4dali6OpTypeE", !13, i64 0}
!57 = !{!"_ZTSSt10unique_ptrIN4dali9WorkspaceESt14default_deleteIS1_EE", !58, i64 0}
!58 = !{!"_ZTSSt15__uniq_ptr_dataIN4dali9WorkspaceESt14default_deleteIS1_ELb1ELb1EE", !59, i64 0}
!59 = !{!"_ZTSSt15__uniq_ptr_implIN4dali9WorkspaceESt14default_deleteIS1_EE", !60, i64 0}
!60 = !{!"_ZTSSt5tupleIJPN4dali9WorkspaceESt14default_deleteIS1_EEE", !61, i64 0}
!61 = !{!"_ZTSSt11_Tuple_implILm0EJPN4dali9WorkspaceESt14default_deleteIS1_EEE", !62, i64 0}
!62 = !{!"_ZTSSt10_Head_baseILm0EPN4dali9WorkspaceELb0EE", !12, i64 0}
!63 = !{!"_ZTSN4dali15CUDASharedEventE", !64, i64 0}
!64 = !{!"_ZTSSt10shared_ptrIvE", !65, i64 0}
!65 = !{!"_ZTSSt12__shared_ptrIvLN9__gnu_cxx12_Lock_policyE2EE", !12, i64 0, !27, i64 8}
!66 = !{!"_ZTSSt3any", !12, i64 0, !13, i64 8}
!67 = distinct !{!67, !39}
!68 = !{!41, !24, i64 373}


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