; LLVM IR from gem5/gem5 :: src/systemc/tests/systemc/1666-2011-compliance/named_events (named_events)

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<sc_core::sc_object *, std::allocator<sc_core::sc_object *>>::_Vector_impl" }
%"struct.std::_Vector_base<sc_core::sc_object *, std::allocator<sc_core::sc_object *>>::_Vector_impl" = type { %"struct.std::_Vector_base<sc_core::sc_object *, std::allocator<sc_core::sc_object *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sc_core::sc_object *, std::allocator<sc_core::sc_object *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<sc_core::sc_event *, std::allocator<sc_core::sc_event *>>::_Vector_impl" }
%"struct.std::_Vector_base<sc_core::sc_event *, std::allocator<sc_core::sc_event *>>::_Vector_impl" = type { %"struct.std::_Vector_base<sc_core::sc_event *, std::allocator<sc_core::sc_event *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sc_core::sc_event *, std::allocator<sc_core::sc_event *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.sc_core::sc_event" = type { %"class.std::__cxx11::basic_string", ptr, ptr, i32, i32, ptr, %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.13", %"class.std::vector.13" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<sc_core::sc_method_process *, std::allocator<sc_core::sc_method_process *>>::_Vector_impl" }
%"struct.std::_Vector_base<sc_core::sc_method_process *, std::allocator<sc_core::sc_method_process *>>::_Vector_impl" = type { %"struct.std::_Vector_base<sc_core::sc_method_process *, std::allocator<sc_core::sc_method_process *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sc_core::sc_method_process *, std::allocator<sc_core::sc_method_process *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<sc_core::sc_thread_process *, std::allocator<sc_core::sc_thread_process *>>::_Vector_impl" }
%"struct.std::_Vector_base<sc_core::sc_thread_process *, std::allocator<sc_core::sc_thread_process *>>::_Vector_impl" = type { %"struct.std::_Vector_base<sc_core::sc_thread_process *, std::allocator<sc_core::sc_thread_process *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sc_core::sc_thread_process *, std::allocator<sc_core::sc_thread_process *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.5" = type { i8 }
%struct.Top = type <{ %"class.sc_core::sc_module", %"class.sc_core::sc_event", %"class.sc_core::sc_event", ptr, %"class.sc_core::sc_signal", %"class.sc_core::sc_fifo", %"class.sc_core::sc_semaphore", %"class.sc_core::sc_mutex", i8, [7 x i8] }>
%"class.sc_core::sc_module" = type { %"class.sc_core::sc_object", %"class.sc_core::sc_process_host", %"class.sc_core::sc_sensitive", %"class.sc_core::sc_sensitive_pos", %"class.sc_core::sc_sensitive_neg", i8, ptr, i32, ptr, ptr }
%"class.sc_core::sc_object" = type { ptr, ptr, %"class.std::vector.0", %"class.std::vector", %"class.std::__cxx11::basic_string", ptr, ptr }
%"class.sc_core::sc_process_host" = type { ptr }
%"class.sc_core::sc_sensitive" = type { ptr, i32, ptr }
%"class.sc_core::sc_sensitive_pos" = type { ptr, i32, ptr }
%"class.sc_core::sc_sensitive_neg" = type { ptr, i32, ptr }
%"class.sc_core::sc_signal" = type <{ %"class.sc_core::sc_signal_inout_if", %"class.sc_core::sc_prim_channel", %"struct.sc_core::sc_writer_policy_check", ptr, i32, [4 x i8], i64, i32, [4 x i8] }>
%"class.sc_core::sc_signal_inout_if" = type { %"class.sc_core::sc_signal_in_if", %"class.sc_core::sc_signal_write_if" }
%"class.sc_core::sc_signal_in_if" = type { %"class.sc_core::sc_interface" }
%"class.sc_core::sc_interface" = type { ptr }
%"class.sc_core::sc_signal_write_if" = type { %"class.sc_core::sc_interface" }
%"class.sc_core::sc_prim_channel" = type { %"class.sc_core::sc_object", ptr, ptr }
%"struct.sc_core::sc_writer_policy_check" = type { %"struct.sc_core::sc_writer_policy_check_port", %"struct.sc_core::sc_writer_policy_check_write" }
%"struct.sc_core::sc_writer_policy_check_port" = type { ptr }
%"struct.sc_core::sc_writer_policy_check_write" = type { i8, ptr }
%"class.sc_core::sc_fifo" = type { %"class.sc_core::sc_fifo_in_if", %"class.sc_core::sc_fifo_out_if", %"class.sc_core::sc_prim_channel", i32, ptr, i32, i32, i32, ptr, ptr, i32, i32, i32, %"class.sc_core::sc_event", %"class.sc_core::sc_event" }
%"class.sc_core::sc_fifo_in_if" = type { %"class.sc_core::sc_fifo_nonblocking_in_if", %"class.sc_core::sc_fifo_blocking_in_if" }
%"class.sc_core::sc_fifo_nonblocking_in_if" = type { %"class.sc_core::sc_interface" }
%"class.sc_core::sc_fifo_blocking_in_if" = type { %"class.sc_core::sc_interface" }
%"class.sc_core::sc_fifo_out_if" = type { %"class.sc_core::sc_fifo_nonblocking_out_if", %"class.sc_core::sc_fifo_blocking_out_if" }
%"class.sc_core::sc_fifo_nonblocking_out_if" = type { %"class.sc_core::sc_interface" }
%"class.sc_core::sc_fifo_blocking_out_if" = type { %"class.sc_core::sc_interface" }
%"class.sc_core::sc_semaphore" = type <{ %"class.sc_core::sc_semaphore_if", %"class.sc_core::sc_object", %"class.sc_core::sc_event", i32, [4 x i8] }>
%"class.sc_core::sc_semaphore_if" = type { %"class.sc_core::sc_interface" }
%"class.sc_core::sc_mutex" = type { %"class.sc_core::sc_mutex_if", %"class.sc_core::sc_object", ptr, %"class.sc_core::sc_event" }
%"class.sc_core::sc_mutex_if" = type { %"class.sc_core::sc_interface" }
%"class.sc_core::sc_module_name" = type <{ ptr, ptr, ptr, ptr, i8, [7 x i8] }>
%"class.sc_core::sc_signal.18" = type { %"class.sc_core::sc_signal_inout_if.19", %"class.sc_core::sc_prim_channel", %"struct.sc_core::sc_writer_policy_check", ptr, i8, i64, ptr, i8, ptr, ptr }
%"class.sc_core::sc_signal_inout_if.19" = type { %"class.sc_core::sc_signal_in_if.20", %"class.sc_core::sc_signal_write_if.21" }
%"class.sc_core::sc_signal_in_if.20" = type { %"class.sc_core::sc_interface" }
%"class.sc_core::sc_signal_write_if.21" = type { %"class.sc_core::sc_interface" }

@_ZN7sc_core23SC_ID_ASSERTION_FAILED_E = external constant [0 x i8], align 1
@.str = external hidden unnamed_addr constant [18 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [11 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.40 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [8 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local i32 @sc_main(i32 noundef %0, ptr noundef %1) #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca i32, align 4
  %4 = alloca ptr, align 8
  %5 = alloca %"class.std::vector", align 8
  %6 = alloca ptr, align 8
  %7 = alloca i32, align 4
  %8 = alloca %"class.std::vector.0", align 8
  %9 = alloca %"class.sc_core::sc_event", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator.5", align 1
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::allocator.5", align 1
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::allocator.5", align 1
  %16 = alloca %struct.Top, align 8
  %17 = alloca %"class.sc_core::sc_module_name", align 8
  %18 = alloca %"class.sc_core::sc_event", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::allocator.5", align 1
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::allocator.5", align 1
  %25 = alloca %"class.sc_core::sc_event", align 8
  %26 = alloca %"class.sc_core::sc_signal.18", align 8
  store i32 %0, ptr %3, align 4, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 24, ptr %5) #7
  call void @_ZNSt6vectorIPN7sc_core9sc_objectESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  %27 = invoke noundef ptr @_ZN7sc_core22sc_get_curr_simcontextEv()
          to label %28 unwind label %346

28:                                               ; preds = %2
  %29 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN7sc_core24sc_get_top_level_objectsEPKNS_13sc_simcontextE(ptr noundef %27)
          to label %30 unwind label %346

30:                                               ; preds = %28
  %31 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIPN7sc_core9sc_objectESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %29)
          to label %32 unwind label %346

32:                                               ; preds = %30
  %33 = call noundef i64 @_ZNKSt6vectorIPN7sc_core9sc_objectESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  %34 = icmp eq i64 %33, 0
  br i1 %34, label %35, label %36

35:                                               ; preds = %32
  br label %38

36:                                               ; preds = %32
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str, ptr noundef @.str.2, i32 noundef 142)
          to label %37 unwind label %346

37:                                               ; preds = %36
  br label %38

38:                                               ; preds = %37, %35
  %39 = phi i32 [ 0, %35 ], [ 0, %37 ]
  call void @llvm.lifetime.start.p0(i64 24, ptr %8) #7
  call void @_ZNSt6vectorIPN7sc_core8sc_eventESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  %40 = invoke noundef ptr @_ZN7sc_core22sc_get_curr_simcontextEv()
          to label %41 unwind label %350

41:                                               ; preds = %38
  %42 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN7sc_core23sc_get_top_level_eventsEPKNS_13sc_simcontextE(ptr noundef %40)
          to label %43 unwind label %350

43:                                               ; preds = %41
  %44 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIPN7sc_core8sc_eventESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(24) %42)
          to label %45 unwind label %350

45:                                               ; preds = %43
  %46 = call noundef i64 @_ZNKSt6vectorIPN7sc_core8sc_eventESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  %47 = icmp eq i64 %46, 0
  br i1 %47, label %48, label %49

48:                                               ; preds = %45
  br label %51

49:                                               ; preds = %45
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.3, ptr noundef @.str.2, i32 noundef 146)
          to label %50 unwind label %350

50:                                               ; preds = %49
  br label %51

51:                                               ; preds = %50, %48
  %52 = phi i32 [ 0, %48 ], [ 0, %50 ]
  call void @llvm.lifetime.start.p0(i64 160, ptr %9) #7
  invoke void @_ZN7sc_core8sc_eventC1EPKc(ptr noundef nonnull align 8 dereferenceable(160) %9, ptr noundef @.str.4)
          to label %53 unwind label %354

53:                                               ; preds = %51
  %54 = invoke noundef zeroext i1 @_ZNK7sc_core8sc_event12in_hierarchyEv(ptr noundef nonnull align 8 dereferenceable(160) %9)
          to label %55 unwind label %358

55:                                               ; preds = %53
  br i1 %54, label %56, label %57

56:                                               ; preds = %55
  br label %59

57:                                               ; preds = %55
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.5, ptr noundef @.str.2, i32 noundef 150)
          to label %58 unwind label %358

58:                                               ; preds = %57
  br label %59

59:                                               ; preds = %58, %56
  %60 = phi i32 [ 0, %56 ], [ 0, %58 ]
  %61 = invoke noundef ptr @_ZNK7sc_core8sc_event17get_parent_objectEv(ptr noundef nonnull align 8 dereferenceable(160) %9)
          to label %62 unwind label %358

62:                                               ; preds = %59
  %63 = icmp eq ptr %61, null
  br i1 %63, label %64, label %65

64:                                               ; preds = %62
  br label %67

65:                                               ; preds = %62
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.6, ptr noundef @.str.2, i32 noundef 151)
          to label %66 unwind label %358

66:                                               ; preds = %65
  br label %67

67:                                               ; preds = %66, %64
  %68 = phi i32 [ 0, %64 ], [ 0, %66 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr %10) #7
  %69 = invoke noundef ptr @_ZNK7sc_core8sc_event4nameEv(ptr noundef nonnull align 8 dereferenceable(160) %9)
          to label %70 unwind label %362

70:                                               ; preds = %67
  call void @llvm.lifetime.start.p0(i64 1, ptr %11) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef %69, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %71 unwind label %366

71:                                               ; preds = %70
  %72 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef @.str.4)
          to label %73 unwind label %370

73:                                               ; preds = %71
  br i1 %72, label %74, label %75

74:                                               ; preds = %73
  br label %77

75:                                               ; preds = %73
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.7, ptr noundef @.str.2, i32 noundef 152)
          to label %76 unwind label %370

76:                                               ; preds = %75
  br label %77

77:                                               ; preds = %76, %74
  %78 = phi i32 [ 0, %74 ], [ 0, %76 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #7
  %79 = invoke noundef ptr @_ZNK7sc_core8sc_event8basenameEv(ptr noundef nonnull align 8 dereferenceable(160) %9)
          to label %80 unwind label %376

80:                                               ; preds = %77
  call void @llvm.lifetime.start.p0(i64 1, ptr %13) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef %79, ptr noundef nonnull align 1 dereferenceable(1) %13)
          to label %81 unwind label %380

81:                                               ; preds = %80
  %82 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef @.str.4)
          to label %83 unwind label %384

83:                                               ; preds = %81
  br i1 %82, label %84, label %85

84:                                               ; preds = %83
  br label %87

85:                                               ; preds = %83
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.8, ptr noundef @.str.2, i32 noundef 153)
          to label %86 unwind label %384

86:                                               ; preds = %85
  br label %87

87:                                               ; preds = %86, %84
  %88 = phi i32 [ 0, %84 ], [ 0, %86 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #7
  %89 = invoke noundef zeroext i1 @_ZN7sc_core27sc_hierarchical_name_existsEPKc(ptr noundef @.str.4)
          to label %90 unwind label %358

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

91:                                               ; preds = %90
  br label %94

92:                                               ; preds = %90
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.9, ptr noundef @.str.2, i32 noundef 154)
          to label %93 unwind label %358

93:                                               ; preds = %92
  br label %94

94:                                               ; preds = %93, %91
  %95 = phi i32 [ 0, %91 ], [ 0, %93 ]
  %96 = invoke noundef ptr @_ZN7sc_core22sc_get_curr_simcontextEv()
          to label %97 unwind label %358

97:                                               ; preds = %94
  %98 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN7sc_core24sc_get_top_level_objectsEPKNS_13sc_simcontextE(ptr noundef %96)
          to label %99 unwind label %358

99:                                               ; preds = %97
  %100 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIPN7sc_core9sc_objectESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %98)
          to label %101 unwind label %358

101:                                              ; preds = %99
  %102 = call noundef i64 @_ZNKSt6vectorIPN7sc_core9sc_objectESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  %103 = icmp eq i64 %102, 0
  br i1 %103, label %104, label %105

104:                                              ; preds = %101
  br label %107

105:                                              ; preds = %101
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str, ptr noundef @.str.2, i32 noundef 157)
          to label %106 unwind label %358

106:                                              ; preds = %105
  br label %107

107:                                              ; preds = %106, %104
  %108 = phi i32 [ 0, %104 ], [ 0, %106 ]
  %109 = invoke noundef ptr @_ZN7sc_core22sc_get_curr_simcontextEv()
          to label %110 unwind label %358

110:                                              ; preds = %107
  %111 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN7sc_core23sc_get_top_level_eventsEPKNS_13sc_simcontextE(ptr noundef %109)
          to label %112 unwind label %358

112:                                              ; preds = %110
  %113 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIPN7sc_core8sc_eventESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(24) %111)
          to label %114 unwind label %358

114:                                              ; preds = %112
  %115 = call noundef i64 @_ZNKSt6vectorIPN7sc_core8sc_eventESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  %116 = icmp eq i64 %115, 1
  br i1 %116, label %117, label %118

117:                                              ; preds = %114
  br label %120

118:                                              ; preds = %114
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.10, ptr noundef @.str.2, i32 noundef 159)
          to label %119 unwind label %358

119:                                              ; preds = %118
  br label %120

120:                                              ; preds = %119, %117
  %121 = phi i32 [ 0, %117 ], [ 0, %119 ]
  %122 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN7sc_core8sc_eventESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef 0) #7
  %123 = load ptr, ptr %122, align 8, !tbaa !9
  %124 = icmp eq ptr %123, %9
  br i1 %124, label %125, label %126

125:                                              ; preds = %120
  br label %128

126:                                              ; preds = %120
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.11, ptr noundef @.str.2, i32 noundef 160)
          to label %127 unwind label %358

127:                                              ; preds = %126
  br label %128

128:                                              ; preds = %127, %125
  %129 = phi i32 [ 0, %125 ], [ 0, %127 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #7
  %130 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN7sc_core8sc_eventESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %8, i64 noundef 0) #7
  %131 = load ptr, ptr %130, align 8, !tbaa !9
  %132 = invoke noundef ptr @_ZNK7sc_core8sc_event4nameEv(ptr noundef nonnull align 8 dereferenceable(160) %131)
          to label %133 unwind label %390

133:                                              ; preds = %128
  call void @llvm.lifetime.start.p0(i64 1, ptr %15) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef %132, ptr noundef nonnull align 1 dereferenceable(1) %15)
          to label %134 unwind label %394

134:                                              ; preds = %133
  %135 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef @.str.4)
          to label %136 unwind label %398

136:                                              ; preds = %134
  br i1 %135, label %137, label %138

137:                                              ; preds = %136
  br label %140

138:                                              ; preds = %136
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.12, ptr noundef @.str.2, i32 noundef 161)
          to label %139 unwind label %398

139:                                              ; preds = %138
  br label %140

140:                                              ; preds = %139, %137
  %141 = phi i32 [ 0, %137 ], [ 0, %139 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  %142 = invoke noundef ptr @_ZN7sc_core13sc_find_eventEPKc(ptr noundef @.str.4)
          to label %143 unwind label %358

143:                                              ; preds = %140
  %144 = icmp eq ptr %142, %9
  br i1 %144, label %145, label %146

145:                                              ; preds = %143
  br label %148

146:                                              ; preds = %143
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.13, ptr noundef @.str.2, i32 noundef 163)
          to label %147 unwind label %358

147:                                              ; preds = %146
  br label %148

148:                                              ; preds = %147, %145
  %149 = phi i32 [ 0, %145 ], [ 0, %147 ]
  call void @llvm.lifetime.start.p0(i64 1888, ptr %16) #7
  invoke void @_ZN7sc_core14sc_module_nameC1EPKc(ptr noundef nonnull align 8 dereferenceable(33) %17, ptr noundef @.str.14)
          to label %150 unwind label %404

150:                                              ; preds = %148
  invoke void @_ZN3TopC2EN7sc_core14sc_module_nameE(ptr noundef nonnull align 8 dereferenceable(1881) %16, ptr noundef %17)
          to label %151 unwind label %408

151:                                              ; preds = %150
  call void @_ZN7sc_core14sc_module_nameD1Ev(ptr noundef nonnull align 8 dereferenceable(33) %17) #7
  %152 = invoke noundef zeroext i1 @_ZN7sc_core27sc_hierarchical_name_existsEPKc(ptr noundef @.str.14)
          to label %153 unwind label %412

153:                                              ; preds = %151
  br i1 %152, label %154, label %155

154:                                              ; preds = %153
  br label %157

155:                                              ; preds = %153
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.15, ptr noundef @.str.2, i32 noundef 166)
          to label %156 unwind label %412

156:                                              ; preds = %155
  br label %157

157:                                              ; preds = %156, %154
  %158 = phi i32 [ 0, %154 ], [ 0, %156 ]
  %159 = invoke noundef zeroext i1 @_ZN7sc_core27sc_hierarchical_name_existsEPKc(ptr noundef @.str.16)
          to label %160 unwind label %412

160:                                              ; preds = %157
  br i1 %159, label %161, label %162

161:                                              ; preds = %160
  br label %164

162:                                              ; preds = %160
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.17, ptr noundef @.str.2, i32 noundef 167)
          to label %163 unwind label %412

163:                                              ; preds = %162
  br label %164

164:                                              ; preds = %163, %161
  %165 = phi i32 [ 0, %161 ], [ 0, %163 ]
  %166 = invoke noundef zeroext i1 @_ZN7sc_core27sc_hierarchical_name_existsEPKc(ptr noundef @.str.18)
          to label %167 unwind label %412

167:                                              ; preds = %164
  br i1 %166, label %168, label %169

168:                                              ; preds = %167
  br label %171

169:                                              ; preds = %167
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.19, ptr noundef @.str.2, i32 noundef 168)
          to label %170 unwind label %412

170:                                              ; preds = %169
  br label %171

171:                                              ; preds = %170, %168
  %172 = phi i32 [ 0, %168 ], [ 0, %170 ]
  %173 = invoke noundef zeroext i1 @_ZN7sc_core27sc_hierarchical_name_existsEPKc(ptr noundef @.str.20)
          to label %174 unwind label %412

174:                                              ; preds = %171
  br i1 %173, label %175, label %176

175:                                              ; preds = %174
  br label %178

176:                                              ; preds = %174
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.21, ptr noundef @.str.2, i32 noundef 169)
          to label %177 unwind label %412

177:                                              ; preds = %176
  br label %178

178:                                              ; preds = %177, %175
  %179 = phi i32 [ 0, %175 ], [ 0, %177 ]
  %180 = invoke noundef zeroext i1 @_ZN7sc_core27sc_hierarchical_name_existsEPKc(ptr noundef @.str.22)
          to label %181 unwind label %412

181:                                              ; preds = %178
  br i1 %180, label %182, label %183

182:                                              ; preds = %181
  br label %185

183:                                              ; preds = %181
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.23, ptr noundef @.str.2, i32 noundef 170)
          to label %184 unwind label %412

184:                                              ; preds = %183
  br label %185

185:                                              ; preds = %184, %182
  %186 = phi i32 [ 0, %182 ], [ 0, %184 ]
  %187 = invoke noundef zeroext i1 @_ZN7sc_core27sc_hierarchical_name_existsEPKc(ptr noundef @.str.24)
          to label %188 unwind label %412

188:                                              ; preds = %185
  br i1 %187, label %190, label %189

189:                                              ; preds = %188
  br label %192

190:                                              ; preds = %188
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.25, ptr noundef @.str.2, i32 noundef 171)
          to label %191 unwind label %412

191:                                              ; preds = %190
  br label %192

192:                                              ; preds = %191, %189
  %193 = phi i32 [ 0, %189 ], [ 0, %191 ]
  %194 = invoke noundef zeroext i1 @_ZN7sc_core27sc_hierarchical_name_existsEPKc(ptr noundef @.str.26)
          to label %195 unwind label %412

195:                                              ; preds = %192
  br i1 %194, label %197, label %196

196:                                              ; preds = %195
  br label %199

197:                                              ; preds = %195
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.27, ptr noundef @.str.2, i32 noundef 172)
          to label %198 unwind label %412

198:                                              ; preds = %197
  br label %199

199:                                              ; preds = %198, %196
  %200 = phi i32 [ 0, %196 ], [ 0, %198 ]
  call void @llvm.lifetime.start.p0(i64 160, ptr %18) #7
  invoke void @_ZN7sc_core8sc_eventC1Ev(ptr noundef nonnull align 8 dereferenceable(160) %18)
          to label %201 unwind label %416

201:                                              ; preds = %199
  %202 = invoke noundef zeroext i1 @_ZNK7sc_core8sc_event12in_hierarchyEv(ptr noundef nonnull align 8 dereferenceable(160) %18)
          to label %203 unwind label %420

203:                                              ; preds = %201
  br i1 %202, label %204, label %205

204:                                              ; preds = %203
  br label %207

205:                                              ; preds = %203
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.28, ptr noundef @.str.2, i32 noundef 176)
          to label %206 unwind label %420

206:                                              ; preds = %205
  br label %207

207:                                              ; preds = %206, %204
  %208 = phi i32 [ 0, %204 ], [ 0, %206 ]
  %209 = invoke noundef ptr @_ZNK7sc_core8sc_event17get_parent_objectEv(ptr noundef nonnull align 8 dereferenceable(160) %18)
          to label %210 unwind label %420

210:                                              ; preds = %207
  %211 = icmp eq ptr %209, null
  br i1 %211, label %212, label %213

212:                                              ; preds = %210
  br label %215

213:                                              ; preds = %210
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.29, ptr noundef @.str.2, i32 noundef 177)
          to label %214 unwind label %420

214:                                              ; preds = %213
  br label %215

215:                                              ; preds = %214, %212
  %216 = phi i32 [ 0, %212 ], [ 0, %214 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #7
  %217 = invoke noundef ptr @_ZNK7sc_core8sc_event4nameEv(ptr noundef nonnull align 8 dereferenceable(160) %18)
          to label %218 unwind label %424

218:                                              ; preds = %215
  call void @llvm.lifetime.start.p0(i64 1, ptr %21) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef %217, ptr noundef nonnull align 1 dereferenceable(1) %21)
          to label %219 unwind label %428

219:                                              ; preds = %218
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef nonnull align 8 dereferenceable(32) %20, i64 noundef 0, i64 noundef 5)
          to label %220 unwind label %432

220:                                              ; preds = %219
  %221 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef @.str.30)
          to label %222 unwind label %436

222:                                              ; preds = %220
  br i1 %221, label %223, label %224

223:                                              ; preds = %222
  br label %226

224:                                              ; preds = %222
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.31, ptr noundef @.str.2, i32 noundef 178)
          to label %225 unwind label %436

225:                                              ; preds = %224
  br label %226

226:                                              ; preds = %225, %223
  %227 = phi i32 [ 0, %223 ], [ 0, %225 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr %23) #7
  %228 = invoke noundef ptr @_ZNK7sc_core8sc_event8basenameEv(ptr noundef nonnull align 8 dereferenceable(160) %18)
          to label %229 unwind label %443

229:                                              ; preds = %226
  call void @llvm.lifetime.start.p0(i64 1, ptr %24) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef %228, ptr noundef nonnull align 1 dereferenceable(1) %24)
          to label %230 unwind label %447

230:                                              ; preds = %229
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %23, i64 noundef 0, i64 noundef 5)
          to label %231 unwind label %451

231:                                              ; preds = %230
  %232 = invoke noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef @.str.30)
          to label %233 unwind label %455

233:                                              ; preds = %231
  br i1 %232, label %234, label %235

234:                                              ; preds = %233
  br label %237

235:                                              ; preds = %233
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.32, ptr noundef @.str.2, i32 noundef 179)
          to label %236 unwind label %455

236:                                              ; preds = %235
  br label %237

237:                                              ; preds = %236, %234
  %238 = phi i32 [ 0, %234 ], [ 0, %236 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  %239 = invoke noundef ptr @_ZNK7sc_core8sc_event4nameEv(ptr noundef nonnull align 8 dereferenceable(160) %18)
          to label %240 unwind label %420

240:                                              ; preds = %237
  %241 = invoke noundef zeroext i1 @_ZN7sc_core27sc_hierarchical_name_existsEPKc(ptr noundef %239)
          to label %242 unwind label %420

242:                                              ; preds = %240
  br i1 %241, label %243, label %244

243:                                              ; preds = %242
  br label %246

244:                                              ; preds = %242
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.33, ptr noundef @.str.2, i32 noundef 180)
          to label %245 unwind label %420

245:                                              ; preds = %244
  br label %246

246:                                              ; preds = %245, %243
  %247 = phi i32 [ 0, %243 ], [ 0, %245 ]
  %248 = invoke noundef ptr @_ZN7sc_core22sc_get_curr_simcontextEv()
          to label %249 unwind label %420

249:                                              ; preds = %246
  %250 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN7sc_core23sc_get_top_level_eventsEPKNS_13sc_simcontextE(ptr noundef %248)
          to label %251 unwind label %420

251:                                              ; preds = %249
  %252 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIPN7sc_core8sc_eventESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(24) %250)
          to label %253 unwind label %420

253:                                              ; preds = %251
  %254 = call noundef i64 @_ZNKSt6vectorIPN7sc_core8sc_eventESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  %255 = icmp eq i64 %254, 2
  br i1 %255, label %256, label %257

256:                                              ; preds = %253
  br label %259

257:                                              ; preds = %253
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.34, ptr noundef @.str.2, i32 noundef 183)
          to label %258 unwind label %420

258:                                              ; preds = %257
  br label %259

259:                                              ; preds = %258, %256
  %260 = phi i32 [ 0, %256 ], [ 0, %258 ]
  call void @llvm.lifetime.start.p0(i64 160, ptr %25) #7
  invoke void @_ZN7sc_core8sc_eventC1EPKc(ptr noundef nonnull align 8 dereferenceable(160) %25, ptr noundef @.str.14)
          to label %261 unwind label %462

261:                                              ; preds = %259
  %262 = invoke noundef ptr @_ZN7sc_core22sc_get_curr_simcontextEv()
          to label %263 unwind label %466

263:                                              ; preds = %261
  %264 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN7sc_core23sc_get_top_level_eventsEPKNS_13sc_simcontextE(ptr noundef %262)
          to label %265 unwind label %466

265:                                              ; preds = %263
  %266 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIPN7sc_core8sc_eventESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(24) %264)
          to label %267 unwind label %466

267:                                              ; preds = %265
  %268 = call noundef i64 @_ZNKSt6vectorIPN7sc_core8sc_eventESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  %269 = icmp eq i64 %268, 3
  br i1 %269, label %270, label %271

270:                                              ; preds = %267
  br label %273

271:                                              ; preds = %267
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 187)
          to label %272 unwind label %466

272:                                              ; preds = %271
  br label %273

273:                                              ; preds = %272, %270
  %274 = phi i32 [ 0, %270 ], [ 0, %272 ]
  %275 = invoke noundef ptr @_ZN7sc_core22sc_get_curr_simcontextEv()
          to label %276 unwind label %466

276:                                              ; preds = %273
  %277 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN7sc_core24sc_get_top_level_objectsEPKNS_13sc_simcontextE(ptr noundef %275)
          to label %278 unwind label %466

278:                                              ; preds = %276
  %279 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIPN7sc_core9sc_objectESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %277)
          to label %280 unwind label %466

280:                                              ; preds = %278
  %281 = call noundef i64 @_ZNKSt6vectorIPN7sc_core9sc_objectESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  %282 = icmp eq i64 %281, 1
  br i1 %282, label %283, label %284

283:                                              ; preds = %280
  br label %286

284:                                              ; preds = %280
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.36, ptr noundef @.str.2, i32 noundef 189)
          to label %285 unwind label %466

285:                                              ; preds = %284
  br label %286

286:                                              ; preds = %285, %283
  %287 = phi i32 [ 0, %283 ], [ 0, %285 ]
  %288 = invoke noundef ptr @_ZNK7sc_core8sc_event4nameEv(ptr noundef nonnull align 8 dereferenceable(160) %25)
          to label %289 unwind label %466

289:                                              ; preds = %286
  %290 = invoke noundef ptr @_ZN7sc_core13sc_find_eventEPKc(ptr noundef %288)
          to label %291 unwind label %466

291:                                              ; preds = %289
  %292 = icmp eq ptr %290, %25
  br i1 %292, label %293, label %294

293:                                              ; preds = %291
  br label %296

294:                                              ; preds = %291
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.37, ptr noundef @.str.2, i32 noundef 191)
          to label %295 unwind label %466

295:                                              ; preds = %294
  br label %296

296:                                              ; preds = %295, %293
  %297 = phi i32 [ 0, %293 ], [ 0, %295 ]
  call void @llvm.lifetime.start.p0(i64 224, ptr %26) #7
  invoke void @_ZN7sc_core9sc_signalIbLNS_16sc_writer_policyE0EEC1Ev(ptr noundef nonnull align 8 dereferenceable(224) %26)
          to label %298 unwind label %470

298:                                              ; preds = %296
  %299 = invoke noundef ptr @_ZN7sc_core22sc_get_curr_simcontextEv()
          to label %300 unwind label %474

300:                                              ; preds = %298
  %301 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN7sc_core23sc_get_top_level_eventsEPKNS_13sc_simcontextE(ptr noundef %299)
          to label %302 unwind label %474

302:                                              ; preds = %300
  %303 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIPN7sc_core8sc_eventESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(24) %301)
          to label %304 unwind label %474

304:                                              ; preds = %302
  %305 = call noundef i64 @_ZNKSt6vectorIPN7sc_core8sc_eventESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  %306 = icmp eq i64 %305, 3
  br i1 %306, label %307, label %308

307:                                              ; preds = %304
  br label %310

308:                                              ; preds = %304
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.35, ptr noundef @.str.2, i32 noundef 195)
          to label %309 unwind label %474

309:                                              ; preds = %308
  br label %310

310:                                              ; preds = %309, %307
  %311 = phi i32 [ 0, %307 ], [ 0, %309 ]
  %312 = invoke noundef ptr @_ZN7sc_core22sc_get_curr_simcontextEv()
          to label %313 unwind label %474

313:                                              ; preds = %310
  %314 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZN7sc_core24sc_get_top_level_objectsEPKNS_13sc_simcontextE(ptr noundef %312)
          to label %315 unwind label %474

315:                                              ; preds = %313
  %316 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIPN7sc_core9sc_objectESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %314)
          to label %317 unwind label %474

317:                                              ; preds = %315
  %318 = call noundef i64 @_ZNKSt6vectorIPN7sc_core9sc_objectESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  %319 = icmp eq i64 %318, 2
  br i1 %319, label %320, label %321

320:                                              ; preds = %317
  br label %323

321:                                              ; preds = %317
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.38, ptr noundef @.str.2, i32 noundef 197)
          to label %322 unwind label %474

322:                                              ; preds = %321
  br label %323

323:                                              ; preds = %322, %320
  %324 = phi i32 [ 0, %320 ], [ 0, %322 ]
  invoke void @_ZN7sc_core8sc_startEv()
          to label %325 unwind label %474

325:                                              ; preds = %323
  %326 = getelementptr inbounds %struct.Top, ptr %16, i32 0, i32 8
  %327 = load i8, ptr %326, align 8, !tbaa !11, !range !64, !noundef !65
  %328 = trunc i8 %327 to i1
  br i1 %328, label %329, label %330

329:                                              ; preds = %325
  br label %332

330:                                              ; preds = %325
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef @.str.39, ptr noundef @.str.2, i32 noundef 201)
          to label %331 unwind label %474

331:                                              ; preds = %330
  br label %332

332:                                              ; preds = %331, %329
  %333 = phi i32 [ 0, %329 ], [ 0, %331 ]
  %334 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %335 unwind label %474

335:                                              ; preds = %332
  %336 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %334, ptr noundef @.str.40)
          to label %337 unwind label %474

337:                                              ; preds = %335
  %338 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %336, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %339 unwind label %474

339:                                              ; preds = %337
  %340 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %341 unwind label %474

341:                                              ; preds = %339
  %342 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %340, ptr noundef @.str.41)
          to label %343 unwind label %474

343:                                              ; preds = %341
  %344 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %342, ptr noundef @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %345 unwind label %474

345:                                              ; preds = %343
  call void @_ZN7sc_core9sc_signalIbLNS_16sc_writer_policyE0EED1Ev(ptr noundef nonnull align 8 dereferenceable(224) %26) #7
  call void @llvm.lifetime.end.p0(i64 224, ptr %26) #7
  call void @_ZN7sc_core8sc_eventD1Ev(ptr noundef nonnull align 8 dereferenceable(160) %25) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr %25) #7
  call void @_ZN7sc_core8sc_eventD1Ev(ptr noundef nonnull align 8 dereferenceable(160) %18) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr %18) #7
  call void @_ZN3TopD2Ev(ptr noundef nonnull align 8 dereferenceable(1881) %16) #7
  call void @llvm.lifetime.end.p0(i64 1888, ptr %16) #7
  call void @_ZN7sc_core8sc_eventD1Ev(ptr noundef nonnull align 8 dereferenceable(160) %9) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr %9) #7
  call void @_ZNSt6vectorIPN7sc_core8sc_eventESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #7
  call void @_ZNSt6vectorIPN7sc_core9sc_objectESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %5) #7
  ret i32 0

346:                                              ; preds = %36, %30, %28, %2
  %347 = landingpad { ptr, i32 }
          cleanup
  %348 = extractvalue { ptr, i32 } %347, 0
  store ptr %348, ptr %6, align 8
  %349 = extractvalue { ptr, i32 } %347, 1
  store i32 %349, ptr %7, align 4
  br label %488

350:                                              ; preds = %49, %43, %41, %38
  %351 = landingpad { ptr, i32 }
          cleanup
  %352 = extractvalue { ptr, i32 } %351, 0
  store ptr %352, ptr %6, align 8
  %353 = extractvalue { ptr, i32 } %351, 1
  store i32 %353, ptr %7, align 4
  br label %487

354:                                              ; preds = %51
  %355 = landingpad { ptr, i32 }
          cleanup
  %356 = extractvalue { ptr, i32 } %355, 0
  store ptr %356, ptr %6, align 8
  %357 = extractvalue { ptr, i32 } %355, 1
  store i32 %357, ptr %7, align 4
  br label %486

358:                                              ; preds = %146, %140, %126, %118, %112, %110, %107, %105, %99, %97, %94, %92, %87, %65, %59, %57, %53
  %359 = landingpad { ptr, i32 }
          cleanup
  %360 = extractvalue { ptr, i32 } %359, 0
  store ptr %360, ptr %6, align 8
  %361 = extractvalue { ptr, i32 } %359, 1
  store i32 %361, ptr %7, align 4
  br label %485

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

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

370:                                              ; preds = %75, %71
  %371 = landingpad { ptr, i32 }
          cleanup
  %372 = extractvalue { ptr, i32 } %371, 0
  store ptr %372, ptr %6, align 8
  %373 = extractvalue { ptr, i32 } %371, 1
  store i32 %373, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  br label %374

374:                                              ; preds = %370, %366
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %11) #7
  br label %375

375:                                              ; preds = %374, %362
  call void @llvm.lifetime.end.p0(i64 32, ptr %10) #7
  br label %485

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

380:                                              ; preds = %80
  %381 = landingpad { ptr, i32 }
          cleanup
  %382 = extractvalue { ptr, i32 } %381, 0
  store ptr %382, ptr %6, align 8
  %383 = extractvalue { ptr, i32 } %381, 1
  store i32 %383, ptr %7, align 4
  br label %388

384:                                              ; preds = %85, %81
  %385 = landingpad { ptr, i32 }
          cleanup
  %386 = extractvalue { ptr, i32 } %385, 0
  store ptr %386, ptr %6, align 8
  %387 = extractvalue { ptr, i32 } %385, 1
  store i32 %387, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #7
  br label %388

388:                                              ; preds = %384, %380
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %13) #7
  br label %389

389:                                              ; preds = %388, %376
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #7
  br label %485

390:                                              ; preds = %128
  %391 = landingpad { ptr, i32 }
          cleanup
  %392 = extractvalue { ptr, i32 } %391, 0
  store ptr %392, ptr %6, align 8
  %393 = extractvalue { ptr, i32 } %391, 1
  store i32 %393, ptr %7, align 4
  br label %403

394:                                              ; preds = %133
  %395 = landingpad { ptr, i32 }
          cleanup
  %396 = extractvalue { ptr, i32 } %395, 0
  store ptr %396, ptr %6, align 8
  %397 = extractvalue { ptr, i32 } %395, 1
  store i32 %397, ptr %7, align 4
  br label %402

398:                                              ; preds = %138, %134
  %399 = landingpad { ptr, i32 }
          cleanup
  %400 = extractvalue { ptr, i32 } %399, 0
  store ptr %400, ptr %6, align 8
  %401 = extractvalue { ptr, i32 } %399, 1
  store i32 %401, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #7
  br label %402

402:                                              ; preds = %398, %394
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %15) #7
  br label %403

403:                                              ; preds = %402, %390
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #7
  br label %485

404:                                              ; preds = %148
  %405 = landingpad { ptr, i32 }
          cleanup
  %406 = extractvalue { ptr, i32 } %405, 0
  store ptr %406, ptr %6, align 8
  %407 = extractvalue { ptr, i32 } %405, 1
  store i32 %407, ptr %7, align 4
  br label %484

408:                                              ; preds = %150
  %409 = landingpad { ptr, i32 }
          cleanup
  %410 = extractvalue { ptr, i32 } %409, 0
  store ptr %410, ptr %6, align 8
  %411 = extractvalue { ptr, i32 } %409, 1
  store i32 %411, ptr %7, align 4
  call void @_ZN7sc_core14sc_module_nameD1Ev(ptr noundef nonnull align 8 dereferenceable(33) %17) #7
  br label %484

412:                                              ; preds = %197, %192, %190, %185, %183, %178, %176, %171, %169, %164, %162, %157, %155, %151
  %413 = landingpad { ptr, i32 }
          cleanup
  %414 = extractvalue { ptr, i32 } %413, 0
  store ptr %414, ptr %6, align 8
  %415 = extractvalue { ptr, i32 } %413, 1
  store i32 %415, ptr %7, align 4
  br label %483

416:                                              ; preds = %199
  %417 = landingpad { ptr, i32 }
          cleanup
  %418 = extractvalue { ptr, i32 } %417, 0
  store ptr %418, ptr %6, align 8
  %419 = extractvalue { ptr, i32 } %417, 1
  store i32 %419, ptr %7, align 4
  br label %482

420:                                              ; preds = %257, %251, %249, %246, %244, %240, %237, %213, %207, %205, %201
  %421 = landingpad { ptr, i32 }
          cleanup
  %422 = extractvalue { ptr, i32 } %421, 0
  store ptr %422, ptr %6, align 8
  %423 = extractvalue { ptr, i32 } %421, 1
  store i32 %423, ptr %7, align 4
  br label %481

424:                                              ; preds = %215
  %425 = landingpad { ptr, i32 }
          cleanup
  %426 = extractvalue { ptr, i32 } %425, 0
  store ptr %426, ptr %6, align 8
  %427 = extractvalue { ptr, i32 } %425, 1
  store i32 %427, ptr %7, align 4
  br label %442

428:                                              ; preds = %218
  %429 = landingpad { ptr, i32 }
          cleanup
  %430 = extractvalue { ptr, i32 } %429, 0
  store ptr %430, ptr %6, align 8
  %431 = extractvalue { ptr, i32 } %429, 1
  store i32 %431, ptr %7, align 4
  br label %441

432:                                              ; preds = %219
  %433 = landingpad { ptr, i32 }
          cleanup
  %434 = extractvalue { ptr, i32 } %433, 0
  store ptr %434, ptr %6, align 8
  %435 = extractvalue { ptr, i32 } %433, 1
  store i32 %435, ptr %7, align 4
  br label %440

436:                                              ; preds = %224, %220
  %437 = landingpad { ptr, i32 }
          cleanup
  %438 = extractvalue { ptr, i32 } %437, 0
  store ptr %438, ptr %6, align 8
  %439 = extractvalue { ptr, i32 } %437, 1
  store i32 %439, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %440

440:                                              ; preds = %436, %432
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #7
  br label %441

441:                                              ; preds = %440, %428
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %21) #7
  br label %442

442:                                              ; preds = %441, %424
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #7
  br label %481

443:                                              ; preds = %226
  %444 = landingpad { ptr, i32 }
          cleanup
  %445 = extractvalue { ptr, i32 } %444, 0
  store ptr %445, ptr %6, align 8
  %446 = extractvalue { ptr, i32 } %444, 1
  store i32 %446, ptr %7, align 4
  br label %461

447:                                              ; preds = %229
  %448 = landingpad { ptr, i32 }
          cleanup
  %449 = extractvalue { ptr, i32 } %448, 0
  store ptr %449, ptr %6, align 8
  %450 = extractvalue { ptr, i32 } %448, 1
  store i32 %450, ptr %7, align 4
  br label %460

451:                                              ; preds = %230
  %452 = landingpad { ptr, i32 }
          cleanup
  %453 = extractvalue { ptr, i32 } %452, 0
  store ptr %453, ptr %6, align 8
  %454 = extractvalue { ptr, i32 } %452, 1
  store i32 %454, ptr %7, align 4
  br label %459

455:                                              ; preds = %235, %231
  %456 = landingpad { ptr, i32 }
          cleanup
  %457 = extractvalue { ptr, i32 } %456, 0
  store ptr %457, ptr %6, align 8
  %458 = extractvalue { ptr, i32 } %456, 1
  store i32 %458, ptr %7, align 4
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #7
  br label %459

459:                                              ; preds = %455, %451
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #7
  br label %460

460:                                              ; preds = %459, %447
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %24) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr %24) #7
  br label %461

461:                                              ; preds = %460, %443
  call void @llvm.lifetime.end.p0(i64 32, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #7
  br label %481

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

466:                                              ; preds = %294, %289, %286, %284, %278, %276, %273, %271, %265, %263, %261
  %467 = landingpad { ptr, i32 }
          cleanup
  %468 = extractvalue { ptr, i32 } %467, 0
  store ptr %468, ptr %6, align 8
  %469 = extractvalue { ptr, i32 } %467, 1
  store i32 %469, ptr %7, align 4
  br label %479

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

474:                                              ; preds = %343, %341, %339, %337, %335, %332, %330, %323, %321, %315, %313, %310, %308, %302, %300, %298
  %475 = landingpad { ptr, i32 }
          cleanup
  %476 = extractvalue { ptr, i32 } %475, 0
  store ptr %476, ptr %6, align 8
  %477 = extractvalue { ptr, i32 } %475, 1
  store i32 %477, ptr %7, align 4
  call void @_ZN7sc_core9sc_signalIbLNS_16sc_writer_policyE0EED1Ev(ptr noundef nonnull align 8 dereferenceable(224) %26) #7
  br label %478

478:                                              ; preds = %474, %470
  call void @llvm.lifetime.end.p0(i64 224, ptr %26) #7
  br label %479

479:                                              ; preds = %478, %466
  call void @_ZN7sc_core8sc_eventD1Ev(ptr noundef nonnull align 8 dereferenceable(160) %25) #7
  br label %480

480:                                              ; preds = %479, %462
  call void @llvm.lifetime.end.p0(i64 160, ptr %25) #7
  br label %481

481:                                              ; preds = %480, %461, %442, %420
  call void @_ZN7sc_core8sc_eventD1Ev(ptr noundef nonnull align 8 dereferenceable(160) %18) #7
  br label %482

482:                                              ; preds = %481, %416
  call void @llvm.lifetime.end.p0(i64 160, ptr %18) #7
  br label %483

483:                                              ; preds = %482, %412
  call void @_ZN3TopD2Ev(ptr noundef nonnull align 8 dereferenceable(1881) %16) #7
  br label %484

484:                                              ; preds = %483, %408, %404
  call void @llvm.lifetime.end.p0(i64 1888, ptr %16) #7
  br label %485

485:                                              ; preds = %484, %403, %389, %375, %358
  call void @_ZN7sc_core8sc_eventD1Ev(ptr noundef nonnull align 8 dereferenceable(160) %9) #7
  br label %486

486:                                              ; preds = %485, %354
  call void @llvm.lifetime.end.p0(i64 160, ptr %9) #7
  br label %487

487:                                              ; preds = %486, %350
  call void @_ZNSt6vectorIPN7sc_core8sc_eventESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %8) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %8) #7
  br label %488

488:                                              ; preds = %487, %346
  call void @_ZNSt6vectorIPN7sc_core9sc_objectESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %5) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr %5) #7
  br label %489

489:                                              ; preds = %488
  %490 = load ptr, ptr %6, align 8
  %491 = load i32, ptr %7, align 4
  %492 = insertvalue { ptr, i32 } poison, ptr %490, 0
  %493 = insertvalue { ptr, i32 } %492, i32 %491, 1
  resume { ptr, i32 } %493
}

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN7sc_core22sc_get_curr_simcontextEv() #4

declare i32 @__gxx_personality_v0(...)

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

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

declare void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) #5

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

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

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

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

declare void @_ZN7sc_core8sc_eventC1EPKc(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef) unnamed_addr #5

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

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

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

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

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

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

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

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

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

declare noundef ptr @_ZNK7sc_core8sc_event8basenameEv(ptr noundef nonnull align 8 dereferenceable(160)) #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7sc_core27sc_hierarchical_name_existsEPKc(ptr noundef) #4

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

declare noundef ptr @_ZN7sc_core13sc_find_eventEPKc(ptr noundef) #5

declare void @_ZN7sc_core14sc_module_nameC1EPKc(ptr noundef nonnull align 8 dereferenceable(33), ptr noundef) unnamed_addr #5

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

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

declare void @_ZN7sc_core8sc_eventC1Ev(ptr noundef nonnull align 8 dereferenceable(160)) unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i64 noundef) #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7sc_core9sc_signalIbLNS_16sc_writer_policyE0EEC1Ev(ptr noundef nonnull align 8 dereferenceable(224)) unnamed_addr #0 align 2

declare void @_ZN7sc_core8sc_startEv() #5

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !33, i64 1880}
!12 = !{!"_ZTS3Top", !13, i64 0, !34, i64 232, !34, i64 392, !10, i64 552, !44, i64 560, !53, i64 760, !60, i64 1304, !62, i64 1592, !33, i64 1880}
!13 = !{!"_ZTSN7sc_core9sc_moduleE", !14, i64 0, !26, i64 112, !27, i64 120, !29, i64 144, !31, i64 168, !33, i64 192, !10, i64 200, !6, i64 208, !10, i64 216, !10, i64 224}
!14 = !{!"_ZTSN7sc_core9sc_objectE", !10, i64 8, !15, i64 16, !19, i64 40, !23, i64 64, !10, i64 96, !10, i64 104}
!15 = !{!"_ZTSSt6vectorIPN7sc_core8sc_eventESaIS2_EE", !16, i64 0}
!16 = !{!"_ZTSSt12_Vector_baseIPN7sc_core8sc_eventESaIS2_EE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core8sc_eventESaIS2_EE12_Vector_implE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core8sc_eventESaIS2_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!19 = !{!"_ZTSSt6vectorIPN7sc_core9sc_objectESaIS2_EE", !20, i64 0}
!20 = !{!"_ZTSSt12_Vector_baseIPN7sc_core9sc_objectESaIS2_EE", !21, i64 0}
!21 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core9sc_objectESaIS2_EE12_Vector_implE", !22, i64 0}
!22 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core9sc_objectESaIS2_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!23 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !24, i64 0, !25, i64 8, !7, i64 16}
!24 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !10, i64 0}
!25 = !{!"long", !7, i64 0}
!26 = !{!"_ZTSN7sc_core15sc_process_hostE"}
!27 = !{!"_ZTSN7sc_core12sc_sensitiveE", !10, i64 0, !28, i64 8, !10, i64 16}
!28 = !{!"_ZTSN7sc_core12sc_sensitiveUt_E", !7, i64 0}
!29 = !{!"_ZTSN7sc_core16sc_sensitive_posE", !10, i64 0, !30, i64 8, !10, i64 16}
!30 = !{!"_ZTSN7sc_core16sc_sensitive_posUt_E", !7, i64 0}
!31 = !{!"_ZTSN7sc_core16sc_sensitive_negE", !10, i64 0, !32, i64 8, !10, i64 16}
!32 = !{!"_ZTSN7sc_core16sc_sensitive_negUt_E", !7, i64 0}
!33 = !{!"bool", !7, i64 0}
!34 = !{!"_ZTSN7sc_core8sc_eventE", !23, i64 0, !10, i64 32, !10, i64 40, !35, i64 48, !6, i64 52, !10, i64 56, !36, i64 64, !36, i64 88, !40, i64 112, !40, i64 136}
!35 = !{!"_ZTSN7sc_core8sc_event8notify_tE", !7, i64 0}
!36 = !{!"_ZTSSt6vectorIPN7sc_core17sc_method_processESaIS2_EE", !37, i64 0}
!37 = !{!"_ZTSSt12_Vector_baseIPN7sc_core17sc_method_processESaIS2_EE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core17sc_method_processESaIS2_EE12_Vector_implE", !39, i64 0}
!39 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core17sc_method_processESaIS2_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!40 = !{!"_ZTSSt6vectorIPN7sc_core17sc_thread_processESaIS2_EE", !41, i64 0}
!41 = !{!"_ZTSSt12_Vector_baseIPN7sc_core17sc_thread_processESaIS2_EE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core17sc_thread_processESaIS2_EE12_Vector_implE", !43, i64 0}
!43 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core17sc_thread_processESaIS2_EE17_Vector_impl_dataE", !10, i64 0, !10, i64 8, !10, i64 16}
!44 = !{!"_ZTSN7sc_core9sc_signalIiLNS_16sc_writer_policyE0EEE", !45, i64 0, !48, i64 16, !49, i64 144, !10, i64 168, !6, i64 176, !52, i64 184, !6, i64 192}
!45 = !{!"_ZTSN7sc_core18sc_signal_inout_ifIiEE", !46, i64 0, !47, i64 8}
!46 = !{!"_ZTSN7sc_core15sc_signal_in_ifIiEE"}
!47 = !{!"_ZTSN7sc_core18sc_signal_write_ifIiEE"}
!48 = !{!"_ZTSN7sc_core15sc_prim_channelE", !14, i64 0, !10, i64 112, !10, i64 120}
!49 = !{!"_ZTSN7sc_core22sc_writer_policy_checkILNS_16sc_writer_policyE0EEE", !50, i64 0, !51, i64 8}
!50 = !{!"_ZTSN7sc_core27sc_writer_policy_check_portE", !10, i64 0}
!51 = !{!"_ZTSN7sc_core28sc_writer_policy_check_writeE", !33, i64 0, !10, i64 8}
!52 = !{!"long long", !7, i64 0}
!53 = !{!"_ZTSN7sc_core7sc_fifoIiEE", !54, i64 0, !57, i64 16, !48, i64 32, !6, i64 160, !10, i64 168, !6, i64 176, !6, i64 180, !6, i64 184, !10, i64 192, !10, i64 200, !6, i64 208, !6, i64 212, !6, i64 216, !34, i64 224, !34, i64 384}
!54 = !{!"_ZTSN7sc_core13sc_fifo_in_ifIiEE", !55, i64 0, !56, i64 8}
!55 = !{!"_ZTSN7sc_core25sc_fifo_nonblocking_in_ifIiEE"}
!56 = !{!"_ZTSN7sc_core22sc_fifo_blocking_in_ifIiEE"}
!57 = !{!"_ZTSN7sc_core14sc_fifo_out_ifIiEE", !58, i64 0, !59, i64 8}
!58 = !{!"_ZTSN7sc_core26sc_fifo_nonblocking_out_ifIiEE"}
!59 = !{!"_ZTSN7sc_core23sc_fifo_blocking_out_ifIiEE"}
!60 = !{!"_ZTSN7sc_core12sc_semaphoreE", !61, i64 0, !14, i64 8, !34, i64 120, !6, i64 280}
!61 = !{!"_ZTSN7sc_core15sc_semaphore_ifE"}
!62 = !{!"_ZTSN7sc_core8sc_mutexE", !63, i64 0, !14, i64 8, !10, i64 120, !34, i64 128}
!63 = !{!"_ZTSN7sc_core11sc_mutex_ifE"}
!64 = !{i8 0, i8 2}
!65 = !{}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%"class.std::basic_ostream" = type { ptr, %"class.std::basic_ios" }
%"class.std::basic_ios" = type { %"class.std::ios_base", ptr, i8, i8, ptr, ptr, ptr, ptr }
%"class.std::ios_base" = type { ptr, i64, i64, i32, i32, i32, ptr, %"struct.std::ios_base::_Words", [8 x %"struct.std::ios_base::_Words"], i32, ptr, %"class.std::locale" }
%"struct.std::ios_base::_Words" = type { ptr, i64 }
%"class.std::locale" = type { ptr }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<sc_core::sc_object *, std::allocator<sc_core::sc_object *>>::_Vector_impl" }
%"struct.std::_Vector_base<sc_core::sc_object *, std::allocator<sc_core::sc_object *>>::_Vector_impl" = type { %"struct.std::_Vector_base<sc_core::sc_object *, std::allocator<sc_core::sc_object *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sc_core::sc_object *, std::allocator<sc_core::sc_object *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.0" = type { %"struct.std::_Vector_base.1" }
%"struct.std::_Vector_base.1" = type { %"struct.std::_Vector_base<sc_core::sc_event *, std::allocator<sc_core::sc_event *>>::_Vector_impl" }
%"struct.std::_Vector_base<sc_core::sc_event *, std::allocator<sc_core::sc_event *>>::_Vector_impl" = type { %"struct.std::_Vector_base<sc_core::sc_event *, std::allocator<sc_core::sc_event *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sc_core::sc_event *, std::allocator<sc_core::sc_event *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.sc_core::sc_event" = type { %"class.std::__cxx11::basic_string", ptr, ptr, i32, i32, ptr, %"class.std::vector.8", %"class.std::vector.8", %"class.std::vector.13", %"class.std::vector.13" }
%"class.std::__cxx11::basic_string" = type { %"struct.std::__cxx11::basic_string<char>::_Alloc_hider", i64, %union.anon }
%"struct.std::__cxx11::basic_string<char>::_Alloc_hider" = type { ptr }
%union.anon = type { i64, [8 x i8] }
%"class.std::vector.8" = type { %"struct.std::_Vector_base.9" }
%"struct.std::_Vector_base.9" = type { %"struct.std::_Vector_base<sc_core::sc_method_process *, std::allocator<sc_core::sc_method_process *>>::_Vector_impl" }
%"struct.std::_Vector_base<sc_core::sc_method_process *, std::allocator<sc_core::sc_method_process *>>::_Vector_impl" = type { %"struct.std::_Vector_base<sc_core::sc_method_process *, std::allocator<sc_core::sc_method_process *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sc_core::sc_method_process *, std::allocator<sc_core::sc_method_process *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::vector.13" = type { %"struct.std::_Vector_base.14" }
%"struct.std::_Vector_base.14" = type { %"struct.std::_Vector_base<sc_core::sc_thread_process *, std::allocator<sc_core::sc_thread_process *>>::_Vector_impl" }
%"struct.std::_Vector_base<sc_core::sc_thread_process *, std::allocator<sc_core::sc_thread_process *>>::_Vector_impl" = type { %"struct.std::_Vector_base<sc_core::sc_thread_process *, std::allocator<sc_core::sc_thread_process *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<sc_core::sc_thread_process *, std::allocator<sc_core::sc_thread_process *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.std::allocator.5" = type { i8 }
%struct.Top = type <{ %"class.sc_core::sc_module", %"class.sc_core::sc_event", %"class.sc_core::sc_event", ptr, %"class.sc_core::sc_signal", %"class.sc_core::sc_fifo", %"class.sc_core::sc_semaphore", %"class.sc_core::sc_mutex", i8, [7 x i8] }>
%"class.sc_core::sc_module" = type { %"class.sc_core::sc_object", %"class.sc_core::sc_process_host", %"class.sc_core::sc_sensitive", %"class.sc_core::sc_sensitive_pos", %"class.sc_core::sc_sensitive_neg", i8, ptr, i32, ptr, ptr }
%"class.sc_core::sc_object" = type { ptr, ptr, %"class.std::vector.0", %"class.std::vector", %"class.std::__cxx11::basic_string", ptr, ptr }
%"class.sc_core::sc_process_host" = type { ptr }
%"class.sc_core::sc_sensitive" = type { ptr, i32, ptr }
%"class.sc_core::sc_sensitive_pos" = type { ptr, i32, ptr }
%"class.sc_core::sc_sensitive_neg" = type { ptr, i32, ptr }
%"class.sc_core::sc_signal" = type <{ %"class.sc_core::sc_signal_inout_if", %"class.sc_core::sc_prim_channel", %"struct.sc_core::sc_writer_policy_check", ptr, i32, [4 x i8], i64, i32, [4 x i8] }>
%"class.sc_core::sc_signal_inout_if" = type { %"class.sc_core::sc_signal_in_if", %"class.sc_core::sc_signal_write_if" }
%"class.sc_core::sc_signal_in_if" = type { %"class.sc_core::sc_interface" }
%"class.sc_core::sc_interface" = type { ptr }
%"class.sc_core::sc_signal_write_if" = type { %"class.sc_core::sc_interface" }
%"class.sc_core::sc_prim_channel" = type { %"class.sc_core::sc_object", ptr, ptr }
%"struct.sc_core::sc_writer_policy_check" = type { %"struct.sc_core::sc_writer_policy_check_port", %"struct.sc_core::sc_writer_policy_check_write" }
%"struct.sc_core::sc_writer_policy_check_port" = type { ptr }
%"struct.sc_core::sc_writer_policy_check_write" = type { i8, ptr }
%"class.sc_core::sc_fifo" = type { %"class.sc_core::sc_fifo_in_if", %"class.sc_core::sc_fifo_out_if", %"class.sc_core::sc_prim_channel", i32, ptr, i32, i32, i32, ptr, ptr, i32, i32, i32, %"class.sc_core::sc_event", %"class.sc_core::sc_event" }
%"class.sc_core::sc_fifo_in_if" = type { %"class.sc_core::sc_fifo_nonblocking_in_if", %"class.sc_core::sc_fifo_blocking_in_if" }
%"class.sc_core::sc_fifo_nonblocking_in_if" = type { %"class.sc_core::sc_interface" }
%"class.sc_core::sc_fifo_blocking_in_if" = type { %"class.sc_core::sc_interface" }
%"class.sc_core::sc_fifo_out_if" = type { %"class.sc_core::sc_fifo_nonblocking_out_if", %"class.sc_core::sc_fifo_blocking_out_if" }
%"class.sc_core::sc_fifo_nonblocking_out_if" = type { %"class.sc_core::sc_interface" }
%"class.sc_core::sc_fifo_blocking_out_if" = type { %"class.sc_core::sc_interface" }
%"class.sc_core::sc_semaphore" = type <{ %"class.sc_core::sc_semaphore_if", %"class.sc_core::sc_object", %"class.sc_core::sc_event", i32, [4 x i8] }>
%"class.sc_core::sc_semaphore_if" = type { %"class.sc_core::sc_interface" }
%"class.sc_core::sc_mutex" = type { %"class.sc_core::sc_mutex_if", %"class.sc_core::sc_object", ptr, %"class.sc_core::sc_event" }
%"class.sc_core::sc_mutex_if" = type { %"class.sc_core::sc_interface" }
%"class.sc_core::sc_module_name" = type <{ ptr, ptr, ptr, ptr, i8, [7 x i8] }>
%"class.sc_core::sc_signal.18" = type { %"class.sc_core::sc_signal_inout_if.19", %"class.sc_core::sc_prim_channel", %"struct.sc_core::sc_writer_policy_check", ptr, i8, i64, ptr, i8, ptr, ptr }
%"class.sc_core::sc_signal_inout_if.19" = type { %"class.sc_core::sc_signal_in_if.20", %"class.sc_core::sc_signal_write_if.21" }
%"class.sc_core::sc_signal_in_if.20" = type { %"class.sc_core::sc_interface" }
%"class.sc_core::sc_signal_write_if.21" = type { %"class.sc_core::sc_interface" }

@_ZN7sc_core23SC_ID_ASSERTION_FAILED_E = external constant [0 x i8], align 1
@.str = external hidden unnamed_addr constant [18 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [16 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [28 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [4 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [8 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [7 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [11 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [29 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [6 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [40 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [18 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [11 x i8], align 1
@_ZSt4cout = external global %"class.std::basic_ostream", align 8
@.str.40 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [8 x i8], align 1

; Function Attrs: mustprogress uwtable
define dso_local noundef i32 @sc_main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 personality ptr @__gxx_personality_v0 {
  %3 = alloca %"class.std::vector", align 8
  %4 = alloca %"class.std::vector.0", align 8
  %5 = alloca %"class.sc_core::sc_event", align 8
  %6 = alloca %"class.std::__cxx11::basic_string", align 8
  %7 = alloca %"class.std::allocator.5", align 1
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::allocator.5", align 1
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::allocator.5", align 1
  %12 = alloca %struct.Top, align 8
  %13 = alloca %"class.sc_core::sc_module_name", align 8
  %14 = alloca %"class.sc_core::sc_event", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::allocator.5", align 1
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::allocator.5", align 1
  %21 = alloca %"class.sc_core::sc_event", align 8
  %22 = alloca %"class.sc_core::sc_signal.18", align 8
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) #7
  call void @_ZNSt6vectorIPN7sc_core9sc_objectESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #7
  %23 = invoke noundef ptr @_ZN7sc_core22sc_get_curr_simcontextEv()
          to label %24 unwind label %226

24:                                               ; preds = %2
  %25 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7sc_core24sc_get_top_level_objectsEPKNS_13sc_simcontextE(ptr noundef %23)
  %26 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIPN7sc_core9sc_objectESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(24) %25)
          to label %27 unwind label %226

27:                                               ; preds = %24
  %28 = call noundef i64 @_ZNKSt6vectorIPN7sc_core9sc_objectESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %3) #7
  %29 = icmp eq i64 %28, 0
  br i1 %29, label %31, label %30

30:                                               ; preds = %27
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str, ptr noundef nonnull @.str.2, i32 noundef 142)
          to label %31 unwind label %226

31:                                               ; preds = %30, %27
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) #7
  call void @_ZNSt6vectorIPN7sc_core8sc_eventESaIS2_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  %32 = invoke noundef ptr @_ZN7sc_core22sc_get_curr_simcontextEv()
          to label %33 unwind label %228

33:                                               ; preds = %31
  %34 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7sc_core23sc_get_top_level_eventsEPKNS_13sc_simcontextE(ptr noundef %32)
  %35 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIPN7sc_core8sc_eventESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(24) %34)
          to label %36 unwind label %228

36:                                               ; preds = %33
  %37 = call noundef i64 @_ZNKSt6vectorIPN7sc_core8sc_eventESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  %38 = icmp eq i64 %37, 0
  br i1 %38, label %40, label %39

39:                                               ; preds = %36
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.2, i32 noundef 146)
          to label %40 unwind label %228

40:                                               ; preds = %39, %36
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %5) #7
  invoke void @_ZN7sc_core8sc_eventC1EPKc(ptr noundef nonnull align 8 dereferenceable(160) %5, ptr noundef nonnull @.str.4)
          to label %41 unwind label %230

41:                                               ; preds = %40
  %42 = call noundef zeroext i1 @_ZNK7sc_core8sc_event12in_hierarchyEv(ptr noundef nonnull align 8 dereferenceable(160) %5)
  br i1 %42, label %44, label %43

43:                                               ; preds = %41
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.5, ptr noundef nonnull @.str.2, i32 noundef 150)
          to label %44 unwind label %232

44:                                               ; preds = %43, %41
  %45 = call noundef ptr @_ZNK7sc_core8sc_event17get_parent_objectEv(ptr noundef nonnull align 8 dereferenceable(160) %5)
  %46 = icmp eq ptr %45, null
  br i1 %46, label %48, label %47

47:                                               ; preds = %44
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.2, i32 noundef 151)
          to label %48 unwind label %232

48:                                               ; preds = %47, %44
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #7
  %49 = call noundef ptr @_ZNK7sc_core8sc_event4nameEv(ptr noundef nonnull align 8 dereferenceable(160) %5)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef %49, ptr noundef nonnull align 1 dereferenceable(1) %7)
          to label %50 unwind label %234

50:                                               ; preds = %48
  %51 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull @.str.4)
  br i1 %51, label %53, label %52

52:                                               ; preds = %50
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.2, i32 noundef 152)
          to label %53 unwind label %236

53:                                               ; preds = %52, %50
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #7
  %54 = invoke noundef ptr @_ZNK7sc_core8sc_event8basenameEv(ptr noundef nonnull align 8 dereferenceable(160) %5)
          to label %55 unwind label %239

55:                                               ; preds = %53
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %9) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef %54, ptr noundef nonnull align 1 dereferenceable(1) %9)
          to label %56 unwind label %241

56:                                               ; preds = %55
  %57 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.4)
  br i1 %57, label %59, label %58

58:                                               ; preds = %56
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.2, i32 noundef 153)
          to label %59 unwind label %243

59:                                               ; preds = %58, %56
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  %60 = invoke noundef zeroext i1 @_ZN7sc_core27sc_hierarchical_name_existsEPKc(ptr noundef nonnull @.str.4)
          to label %61 unwind label %232

61:                                               ; preds = %59
  br i1 %60, label %63, label %62

62:                                               ; preds = %61
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.2, i32 noundef 154)
          to label %63 unwind label %232

63:                                               ; preds = %62, %61
  %64 = invoke noundef ptr @_ZN7sc_core22sc_get_curr_simcontextEv()
          to label %65 unwind label %232

65:                                               ; preds = %63
  %66 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7sc_core24sc_get_top_level_objectsEPKNS_13sc_simcontextE(ptr noundef %64)
  %67 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIPN7sc_core9sc_objectESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(24) %66)
          to label %68 unwind label %232

68:                                               ; preds = %65
  %69 = call noundef i64 @_ZNKSt6vectorIPN7sc_core9sc_objectESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %3) #7
  %70 = icmp eq i64 %69, 0
  br i1 %70, label %72, label %71

71:                                               ; preds = %68
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str, ptr noundef nonnull @.str.2, i32 noundef 157)
          to label %72 unwind label %232

72:                                               ; preds = %71, %68
  %73 = invoke noundef ptr @_ZN7sc_core22sc_get_curr_simcontextEv()
          to label %74 unwind label %232

74:                                               ; preds = %72
  %75 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7sc_core23sc_get_top_level_eventsEPKNS_13sc_simcontextE(ptr noundef %73)
  %76 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIPN7sc_core8sc_eventESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(24) %75)
          to label %77 unwind label %232

77:                                               ; preds = %74
  %78 = call noundef i64 @_ZNKSt6vectorIPN7sc_core8sc_eventESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  %79 = icmp eq i64 %78, 1
  br i1 %79, label %81, label %80

80:                                               ; preds = %77
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.2, i32 noundef 159)
          to label %81 unwind label %232

81:                                               ; preds = %80, %77
  %82 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN7sc_core8sc_eventESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef 0) #7
  %83 = load ptr, ptr %82, align 8, !tbaa !5
  %84 = icmp eq ptr %83, %5
  br i1 %84, label %86, label %85

85:                                               ; preds = %81
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.2, i32 noundef 160)
          to label %86 unwind label %232

86:                                               ; preds = %85, %81
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #7
  %87 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt6vectorIPN7sc_core8sc_eventESaIS2_EEixEm(ptr noundef nonnull align 8 dereferenceable(24) %4, i64 noundef 0) #7
  %88 = load ptr, ptr %87, align 8, !tbaa !5
  %89 = call noundef ptr @_ZNK7sc_core8sc_event4nameEv(ptr noundef nonnull align 8 dereferenceable(160) %88)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %11) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef %89, ptr noundef nonnull align 1 dereferenceable(1) %11)
          to label %90 unwind label %247

90:                                               ; preds = %86
  %91 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.4)
  br i1 %91, label %93, label %92

92:                                               ; preds = %90
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.2, i32 noundef 161)
          to label %93 unwind label %249

93:                                               ; preds = %92, %90
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #7
  %94 = invoke noundef ptr @_ZN7sc_core13sc_find_eventEPKc(ptr noundef nonnull @.str.4)
          to label %95 unwind label %232

95:                                               ; preds = %93
  %96 = icmp eq ptr %94, %5
  br i1 %96, label %98, label %97

97:                                               ; preds = %95
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.2, i32 noundef 163)
          to label %98 unwind label %232

98:                                               ; preds = %97, %95
  call void @llvm.lifetime.start.p0(i64 1888, ptr nonnull %12) #7
  invoke void @_ZN7sc_core14sc_module_nameC1EPKc(ptr noundef nonnull align 8 dereferenceable(33) %13, ptr noundef nonnull @.str.14)
          to label %99 unwind label %252

99:                                               ; preds = %98
  invoke void @_ZN3TopC2EN7sc_core14sc_module_nameE(ptr noundef nonnull align 8 dereferenceable(1881) %12, ptr noundef nonnull %13)
          to label %100 unwind label %254

100:                                              ; preds = %99
  call void @_ZN7sc_core14sc_module_nameD1Ev(ptr noundef nonnull align 8 dereferenceable(33) %13) #7
  %101 = invoke noundef zeroext i1 @_ZN7sc_core27sc_hierarchical_name_existsEPKc(ptr noundef nonnull @.str.14)
          to label %102 unwind label %256

102:                                              ; preds = %100
  br i1 %101, label %104, label %103

103:                                              ; preds = %102
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.2, i32 noundef 166)
          to label %104 unwind label %256

104:                                              ; preds = %103, %102
  %105 = invoke noundef zeroext i1 @_ZN7sc_core27sc_hierarchical_name_existsEPKc(ptr noundef nonnull @.str.16)
          to label %106 unwind label %256

106:                                              ; preds = %104
  br i1 %105, label %108, label %107

107:                                              ; preds = %106
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.2, i32 noundef 167)
          to label %108 unwind label %256

108:                                              ; preds = %107, %106
  %109 = invoke noundef zeroext i1 @_ZN7sc_core27sc_hierarchical_name_existsEPKc(ptr noundef nonnull @.str.18)
          to label %110 unwind label %256

110:                                              ; preds = %108
  br i1 %109, label %112, label %111

111:                                              ; preds = %110
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.2, i32 noundef 168)
          to label %112 unwind label %256

112:                                              ; preds = %111, %110
  %113 = invoke noundef zeroext i1 @_ZN7sc_core27sc_hierarchical_name_existsEPKc(ptr noundef nonnull @.str.20)
          to label %114 unwind label %256

114:                                              ; preds = %112
  br i1 %113, label %116, label %115

115:                                              ; preds = %114
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.2, i32 noundef 169)
          to label %116 unwind label %256

116:                                              ; preds = %115, %114
  %117 = invoke noundef zeroext i1 @_ZN7sc_core27sc_hierarchical_name_existsEPKc(ptr noundef nonnull @.str.22)
          to label %118 unwind label %256

118:                                              ; preds = %116
  br i1 %117, label %120, label %119

119:                                              ; preds = %118
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.2, i32 noundef 170)
          to label %120 unwind label %256

120:                                              ; preds = %119, %118
  %121 = invoke noundef zeroext i1 @_ZN7sc_core27sc_hierarchical_name_existsEPKc(ptr noundef nonnull @.str.24)
          to label %122 unwind label %256

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

123:                                              ; preds = %122
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.2, i32 noundef 171)
          to label %124 unwind label %256

124:                                              ; preds = %123, %122
  %125 = invoke noundef zeroext i1 @_ZN7sc_core27sc_hierarchical_name_existsEPKc(ptr noundef nonnull @.str.26)
          to label %126 unwind label %256

126:                                              ; preds = %124
  br i1 %125, label %127, label %128

127:                                              ; preds = %126
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.2, i32 noundef 172)
          to label %128 unwind label %256

128:                                              ; preds = %127, %126
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %14) #7
  invoke void @_ZN7sc_core8sc_eventC1Ev(ptr noundef nonnull align 8 dereferenceable(160) %14)
          to label %129 unwind label %258

129:                                              ; preds = %128
  %130 = call noundef zeroext i1 @_ZNK7sc_core8sc_event12in_hierarchyEv(ptr noundef nonnull align 8 dereferenceable(160) %14)
  br i1 %130, label %132, label %131

131:                                              ; preds = %129
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.2, i32 noundef 176)
          to label %132 unwind label %260

132:                                              ; preds = %131, %129
  %133 = call noundef ptr @_ZNK7sc_core8sc_event17get_parent_objectEv(ptr noundef nonnull align 8 dereferenceable(160) %14)
  %134 = icmp eq ptr %133, null
  br i1 %134, label %136, label %135

135:                                              ; preds = %132
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.2, i32 noundef 177)
          to label %136 unwind label %260

136:                                              ; preds = %135, %132
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %16) #7
  %137 = call noundef ptr @_ZNK7sc_core8sc_event4nameEv(ptr noundef nonnull align 8 dereferenceable(160) %14)
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef %137, ptr noundef nonnull align 1 dereferenceable(1) %17)
          to label %138 unwind label %262

138:                                              ; preds = %136
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(32) %16, i64 noundef 0, i64 noundef 5)
          to label %139 unwind label %264

139:                                              ; preds = %138
  %140 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef nonnull @.str.30)
  br i1 %140, label %142, label %141

141:                                              ; preds = %139
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.2, i32 noundef 178)
          to label %142 unwind label %266

142:                                              ; preds = %141, %139
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %18) #7
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %19) #7
  %143 = invoke noundef ptr @_ZNK7sc_core8sc_event8basenameEv(ptr noundef nonnull align 8 dereferenceable(160) %14)
          to label %144 unwind label %270

144:                                              ; preds = %142
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %20) #7
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef %143, ptr noundef nonnull align 1 dereferenceable(1) %20)
          to label %145 unwind label %272

145:                                              ; preds = %144
  invoke void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %19, i64 noundef 0, i64 noundef 5)
          to label %146 unwind label %274

146:                                              ; preds = %145
  %147 = call noundef zeroext i1 @_ZSteqIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_(ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull @.str.30)
  br i1 %147, label %149, label %148

148:                                              ; preds = %146
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.2, i32 noundef 179)
          to label %149 unwind label %276

149:                                              ; preds = %148, %146
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  %150 = call noundef ptr @_ZNK7sc_core8sc_event4nameEv(ptr noundef nonnull align 8 dereferenceable(160) %14)
  %151 = invoke noundef zeroext i1 @_ZN7sc_core27sc_hierarchical_name_existsEPKc(ptr noundef %150)
          to label %152 unwind label %260

152:                                              ; preds = %149
  br i1 %151, label %154, label %153

153:                                              ; preds = %152
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.2, i32 noundef 180)
          to label %154 unwind label %260

154:                                              ; preds = %153, %152
  %155 = invoke noundef ptr @_ZN7sc_core22sc_get_curr_simcontextEv()
          to label %156 unwind label %260

156:                                              ; preds = %154
  %157 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7sc_core23sc_get_top_level_eventsEPKNS_13sc_simcontextE(ptr noundef %155)
  %158 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIPN7sc_core8sc_eventESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(24) %157)
          to label %159 unwind label %260

159:                                              ; preds = %156
  %160 = call noundef i64 @_ZNKSt6vectorIPN7sc_core8sc_eventESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  %161 = icmp eq i64 %160, 2
  br i1 %161, label %163, label %162

162:                                              ; preds = %159
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.2, i32 noundef 183)
          to label %163 unwind label %260

163:                                              ; preds = %162, %159
  call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %21) #7
  invoke void @_ZN7sc_core8sc_eventC1EPKc(ptr noundef nonnull align 8 dereferenceable(160) %21, ptr noundef nonnull @.str.14)
          to label %164 unwind label %281

164:                                              ; preds = %163
  %165 = invoke noundef ptr @_ZN7sc_core22sc_get_curr_simcontextEv()
          to label %166 unwind label %283

166:                                              ; preds = %164
  %167 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7sc_core23sc_get_top_level_eventsEPKNS_13sc_simcontextE(ptr noundef %165)
  %168 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIPN7sc_core8sc_eventESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(24) %167)
          to label %169 unwind label %283

169:                                              ; preds = %166
  %170 = call noundef i64 @_ZNKSt6vectorIPN7sc_core8sc_eventESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  %171 = icmp eq i64 %170, 3
  br i1 %171, label %173, label %172

172:                                              ; preds = %169
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 187)
          to label %173 unwind label %283

173:                                              ; preds = %172, %169
  %174 = invoke noundef ptr @_ZN7sc_core22sc_get_curr_simcontextEv()
          to label %175 unwind label %283

175:                                              ; preds = %173
  %176 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7sc_core24sc_get_top_level_objectsEPKNS_13sc_simcontextE(ptr noundef %174)
  %177 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIPN7sc_core9sc_objectESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(24) %176)
          to label %178 unwind label %283

178:                                              ; preds = %175
  %179 = call noundef i64 @_ZNKSt6vectorIPN7sc_core9sc_objectESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %3) #7
  %180 = icmp eq i64 %179, 1
  br i1 %180, label %182, label %181

181:                                              ; preds = %178
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.2, i32 noundef 189)
          to label %182 unwind label %283

182:                                              ; preds = %181, %178
  %183 = call noundef ptr @_ZNK7sc_core8sc_event4nameEv(ptr noundef nonnull align 8 dereferenceable(160) %21)
  %184 = invoke noundef ptr @_ZN7sc_core13sc_find_eventEPKc(ptr noundef %183)
          to label %185 unwind label %283

185:                                              ; preds = %182
  %186 = icmp eq ptr %184, %21
  br i1 %186, label %188, label %187

187:                                              ; preds = %185
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.2, i32 noundef 191)
          to label %188 unwind label %283

188:                                              ; preds = %187, %185
  call void @llvm.lifetime.start.p0(i64 224, ptr nonnull %22) #7
  invoke void @_ZN7sc_core9sc_signalIbLNS_16sc_writer_policyE0EEC1Ev(ptr noundef nonnull align 8 dereferenceable(224) %22)
          to label %189 unwind label %285

189:                                              ; preds = %188
  %190 = invoke noundef ptr @_ZN7sc_core22sc_get_curr_simcontextEv()
          to label %191 unwind label %287

191:                                              ; preds = %189
  %192 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7sc_core23sc_get_top_level_eventsEPKNS_13sc_simcontextE(ptr noundef %190)
  %193 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIPN7sc_core8sc_eventESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(24) %192)
          to label %194 unwind label %287

194:                                              ; preds = %191
  %195 = call noundef i64 @_ZNKSt6vectorIPN7sc_core8sc_eventESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  %196 = icmp eq i64 %195, 3
  br i1 %196, label %198, label %197

197:                                              ; preds = %194
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.2, i32 noundef 195)
          to label %198 unwind label %287

198:                                              ; preds = %197, %194
  %199 = invoke noundef ptr @_ZN7sc_core22sc_get_curr_simcontextEv()
          to label %200 unwind label %287

200:                                              ; preds = %198
  %201 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN7sc_core24sc_get_top_level_objectsEPKNS_13sc_simcontextE(ptr noundef %199)
  %202 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIPN7sc_core9sc_objectESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(24) %201)
          to label %203 unwind label %287

203:                                              ; preds = %200
  %204 = call noundef i64 @_ZNKSt6vectorIPN7sc_core9sc_objectESaIS2_EE4sizeEv(ptr noundef nonnull align 8 dereferenceable(24) %3) #7
  %205 = icmp eq i64 %204, 2
  br i1 %205, label %207, label %206

206:                                              ; preds = %203
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.2, i32 noundef 197)
          to label %207 unwind label %287

207:                                              ; preds = %206, %203
  invoke void @_ZN7sc_core8sc_startEv()
          to label %208 unwind label %287

208:                                              ; preds = %207
  %209 = getelementptr inbounds i8, ptr %12, i64 1880
  %210 = load i8, ptr %209, align 8, !tbaa !9, !range !63, !noundef !64
  %211 = trunc nuw i8 %210 to i1
  br i1 %211, label %213, label %212

212:                                              ; preds = %208
  invoke void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef 3, ptr noundef nonnull @_ZN7sc_core23SC_ID_ASSERTION_FAILED_E, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.2, i32 noundef 201)
          to label %213 unwind label %287

213:                                              ; preds = %212, %208
  %214 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %215 unwind label %287

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

217:                                              ; preds = %215
  %218 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %216, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %219 unwind label %287

219:                                              ; preds = %217
  %220 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cout, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %221 unwind label %287

221:                                              ; preds = %219
  %222 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %220, ptr noundef nonnull @.str.41)
          to label %223 unwind label %287

223:                                              ; preds = %221
  %224 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %222, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_)
          to label %225 unwind label %287

225:                                              ; preds = %223
  call void @_ZN7sc_core9sc_signalIbLNS_16sc_writer_policyE0EED1Ev(ptr noundef nonnull align 8 dereferenceable(224) %22) #7
  call void @llvm.lifetime.end.p0(i64 224, ptr nonnull %22) #7
  call void @_ZN7sc_core8sc_eventD1Ev(ptr noundef nonnull align 8 dereferenceable(160) %21) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %21) #7
  call void @_ZN7sc_core8sc_eventD1Ev(ptr noundef nonnull align 8 dereferenceable(160) %14) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %14) #7
  call void @_ZN3TopD2Ev(ptr noundef nonnull align 8 dereferenceable(1881) %12) #7
  call void @llvm.lifetime.end.p0(i64 1888, ptr nonnull %12) #7
  call void @_ZN7sc_core8sc_eventD1Ev(ptr noundef nonnull align 8 dereferenceable(160) %5) #7
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %5) #7
  call void @_ZNSt6vectorIPN7sc_core8sc_eventESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #7
  call void @_ZNSt6vectorIPN7sc_core9sc_objectESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #7
  ret i32 0

226:                                              ; preds = %30, %24, %2
  %227 = landingpad { ptr, i32 }
          cleanup
  br label %299

228:                                              ; preds = %39, %33, %31
  %229 = landingpad { ptr, i32 }
          cleanup
  br label %298

230:                                              ; preds = %40
  %231 = landingpad { ptr, i32 }
          cleanup
  br label %297

232:                                              ; preds = %97, %93, %85, %80, %74, %72, %71, %65, %63, %62, %59, %47, %43
  %233 = landingpad { ptr, i32 }
          cleanup
  br label %296

234:                                              ; preds = %48
  %235 = landingpad { ptr, i32 }
          cleanup
  br label %238

236:                                              ; preds = %52
  %237 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %6) #7
  br label %238

238:                                              ; preds = %236, %234
  %.pn = phi { ptr, i32 } [ %237, %236 ], [ %235, %234 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %7) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6) #7
  br label %296

239:                                              ; preds = %53
  %240 = landingpad { ptr, i32 }
          cleanup
  br label %246

241:                                              ; preds = %55
  %242 = landingpad { ptr, i32 }
          cleanup
  br label %245

243:                                              ; preds = %58
  %244 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #7
  br label %245

245:                                              ; preds = %243, %241
  %.pn30 = phi { ptr, i32 } [ %244, %243 ], [ %242, %241 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %9) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %9) #7
  br label %246

246:                                              ; preds = %245, %239
  %.pn30.pn = phi { ptr, i32 } [ %.pn30, %245 ], [ %240, %239 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #7
  br label %296

247:                                              ; preds = %86
  %248 = landingpad { ptr, i32 }
          cleanup
  br label %251

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

251:                                              ; preds = %249, %247
  %.pn33 = phi { ptr, i32 } [ %250, %249 ], [ %248, %247 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %11) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #7
  br label %296

252:                                              ; preds = %98
  %253 = landingpad { ptr, i32 }
          cleanup
  br label %295

254:                                              ; preds = %99
  %255 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7sc_core14sc_module_nameD1Ev(ptr noundef nonnull align 8 dereferenceable(33) %13) #7
  br label %295

256:                                              ; preds = %127, %124, %123, %120, %119, %116, %115, %112, %111, %108, %107, %104, %103, %100
  %257 = landingpad { ptr, i32 }
          cleanup
  br label %294

258:                                              ; preds = %128
  %259 = landingpad { ptr, i32 }
          cleanup
  br label %293

260:                                              ; preds = %162, %156, %154, %153, %149, %135, %131
  %261 = landingpad { ptr, i32 }
          cleanup
  br label %292

262:                                              ; preds = %136
  %263 = landingpad { ptr, i32 }
          cleanup
  br label %269

264:                                              ; preds = %138
  %265 = landingpad { ptr, i32 }
          cleanup
  br label %268

266:                                              ; preds = %141
  %267 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #7
  br label %268

268:                                              ; preds = %266, %264
  %.pn35 = phi { ptr, i32 } [ %267, %266 ], [ %265, %264 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #7
  br label %269

269:                                              ; preds = %268, %262
  %.pn35.pn = phi { ptr, i32 } [ %.pn35, %268 ], [ %263, %262 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %16) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #7
  br label %292

270:                                              ; preds = %142
  %271 = landingpad { ptr, i32 }
          cleanup
  br label %280

272:                                              ; preds = %144
  %273 = landingpad { ptr, i32 }
          cleanup
  br label %279

274:                                              ; preds = %145
  %275 = landingpad { ptr, i32 }
          cleanup
  br label %278

276:                                              ; preds = %148
  %277 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #7
  br label %278

278:                                              ; preds = %276, %274
  %.pn38 = phi { ptr, i32 } [ %277, %276 ], [ %275, %274 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #7
  br label %279

279:                                              ; preds = %278, %272
  %.pn38.pn = phi { ptr, i32 } [ %.pn38, %278 ], [ %273, %272 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #7
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %20) #7
  br label %280

280:                                              ; preds = %279, %270
  %.pn38.pn.pn = phi { ptr, i32 } [ %.pn38.pn, %279 ], [ %271, %270 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %19) #7
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %18) #7
  br label %292

281:                                              ; preds = %163
  %282 = landingpad { ptr, i32 }
          cleanup
  br label %291

283:                                              ; preds = %187, %182, %181, %175, %173, %172, %166, %164
  %284 = landingpad { ptr, i32 }
          cleanup
  br label %290

285:                                              ; preds = %188
  %286 = landingpad { ptr, i32 }
          cleanup
  br label %289

287:                                              ; preds = %223, %221, %219, %217, %215, %213, %212, %207, %206, %200, %198, %197, %191, %189
  %288 = landingpad { ptr, i32 }
          cleanup
  call void @_ZN7sc_core9sc_signalIbLNS_16sc_writer_policyE0EED1Ev(ptr noundef nonnull align 8 dereferenceable(224) %22) #7
  br label %289

289:                                              ; preds = %287, %285
  %.pn42 = phi { ptr, i32 } [ %288, %287 ], [ %286, %285 ]
  call void @llvm.lifetime.end.p0(i64 224, ptr nonnull %22) #7
  br label %290

290:                                              ; preds = %289, %283
  %.pn42.pn = phi { ptr, i32 } [ %.pn42, %289 ], [ %284, %283 ]
  call void @_ZN7sc_core8sc_eventD1Ev(ptr noundef nonnull align 8 dereferenceable(160) %21) #7
  br label %291

291:                                              ; preds = %290, %281
  %.pn42.pn.pn = phi { ptr, i32 } [ %.pn42.pn, %290 ], [ %282, %281 ]
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %21) #7
  br label %292

292:                                              ; preds = %291, %280, %269, %260
  %.pn42.pn.pn.pn = phi { ptr, i32 } [ %.pn42.pn.pn, %291 ], [ %261, %260 ], [ %.pn38.pn.pn, %280 ], [ %.pn35.pn, %269 ]
  call void @_ZN7sc_core8sc_eventD1Ev(ptr noundef nonnull align 8 dereferenceable(160) %14) #7
  br label %293

293:                                              ; preds = %292, %258
  %.pn42.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn42.pn.pn.pn, %292 ], [ %259, %258 ]
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %14) #7
  br label %294

294:                                              ; preds = %293, %256
  %.pn42.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn42.pn.pn.pn.pn, %293 ], [ %257, %256 ]
  call void @_ZN3TopD2Ev(ptr noundef nonnull align 8 dereferenceable(1881) %12) #7
  br label %295

295:                                              ; preds = %294, %254, %252
  %.pn42.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn42.pn.pn.pn.pn.pn, %294 ], [ %255, %254 ], [ %253, %252 ]
  call void @llvm.lifetime.end.p0(i64 1888, ptr nonnull %12) #7
  br label %296

296:                                              ; preds = %295, %251, %246, %238, %232
  %.pn42.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn42.pn.pn.pn.pn.pn.pn, %295 ], [ %233, %232 ], [ %.pn33, %251 ], [ %.pn30.pn, %246 ], [ %.pn, %238 ]
  call void @_ZN7sc_core8sc_eventD1Ev(ptr noundef nonnull align 8 dereferenceable(160) %5) #7
  br label %297

297:                                              ; preds = %296, %230
  %.pn42.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn42.pn.pn.pn.pn.pn.pn.pn, %296 ], [ %231, %230 ]
  call void @llvm.lifetime.end.p0(i64 160, ptr nonnull %5) #7
  br label %298

298:                                              ; preds = %297, %228
  %.pn42.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn42.pn.pn.pn.pn.pn.pn.pn.pn, %297 ], [ %229, %228 ]
  call void @_ZNSt6vectorIPN7sc_core8sc_eventESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #7
  br label %299

299:                                              ; preds = %298, %226
  %.pn42.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn42.pn.pn.pn.pn.pn.pn.pn.pn.pn, %298 ], [ %227, %226 ]
  call void @_ZNSt6vectorIPN7sc_core9sc_objectESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #7
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) #7
  resume { ptr, i32 } %.pn42.pn.pn.pn.pn.pn.pn.pn.pn.pn.pn
}

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

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

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

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef ptr @_ZN7sc_core22sc_get_curr_simcontextEv() local_unnamed_addr #4

declare i32 @__gxx_personality_v0(...)

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

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

declare void @_ZN7sc_core17sc_report_handler6reportENS_11sc_severityEPKcS3_S3_i(i32 noundef, ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #5

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

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

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

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

declare void @_ZN7sc_core8sc_eventC1EPKc(ptr noundef nonnull align 8 dereferenceable(160), ptr noundef) unnamed_addr #5

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

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

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

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

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

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

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

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

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

declare noundef ptr @_ZNK7sc_core8sc_event8basenameEv(ptr noundef nonnull align 8 dereferenceable(160)) local_unnamed_addr #5

; Function Attrs: inlinehint mustprogress uwtable
declare dso_local noundef zeroext i1 @_ZN7sc_core27sc_hierarchical_name_existsEPKc(ptr noundef) local_unnamed_addr #4

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

declare noundef ptr @_ZN7sc_core13sc_find_eventEPKc(ptr noundef) local_unnamed_addr #5

declare void @_ZN7sc_core14sc_module_nameC1EPKc(ptr noundef nonnull align 8 dereferenceable(33), ptr noundef) unnamed_addr #5

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

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

declare void @_ZN7sc_core8sc_eventC1Ev(ptr noundef nonnull align 8 dereferenceable(160)) unnamed_addr #5

; Function Attrs: mustprogress uwtable
declare void @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6substrEmm(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8, ptr noundef nonnull align 8 dereferenceable(32), i64 noundef, i64 noundef) local_unnamed_addr #0 align 2

; Function Attrs: mustprogress uwtable
declare dso_local void @_ZN7sc_core9sc_signalIbLNS_16sc_writer_policyE0EEC1Ev(ptr noundef nonnull align 8 dereferenceable(224)) unnamed_addr #0 align 2

declare void @_ZN7sc_core8sc_startEv() local_unnamed_addr #5

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

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

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

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !31, i64 1880}
!10 = !{!"_ZTS3Top", !11, i64 0, !33, i64 232, !33, i64 392, !6, i64 552, !43, i64 560, !52, i64 760, !59, i64 1304, !61, i64 1592, !31, i64 1880}
!11 = !{!"_ZTSN7sc_core9sc_moduleE", !12, i64 0, !24, i64 112, !25, i64 120, !27, i64 144, !29, i64 168, !31, i64 192, !6, i64 200, !32, i64 208, !6, i64 216, !6, i64 224}
!12 = !{!"_ZTSN7sc_core9sc_objectE", !6, i64 8, !13, i64 16, !17, i64 40, !21, i64 64, !6, i64 96, !6, i64 104}
!13 = !{!"_ZTSSt6vectorIPN7sc_core8sc_eventESaIS2_EE", !14, i64 0}
!14 = !{!"_ZTSSt12_Vector_baseIPN7sc_core8sc_eventESaIS2_EE", !15, i64 0}
!15 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core8sc_eventESaIS2_EE12_Vector_implE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core8sc_eventESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!17 = !{!"_ZTSSt6vectorIPN7sc_core9sc_objectESaIS2_EE", !18, i64 0}
!18 = !{!"_ZTSSt12_Vector_baseIPN7sc_core9sc_objectESaIS2_EE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core9sc_objectESaIS2_EE12_Vector_implE", !20, i64 0}
!20 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core9sc_objectESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!21 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !22, i64 0, !23, i64 8, !7, i64 16}
!22 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !6, i64 0}
!23 = !{!"long", !7, i64 0}
!24 = !{!"_ZTSN7sc_core15sc_process_hostE"}
!25 = !{!"_ZTSN7sc_core12sc_sensitiveE", !6, i64 0, !26, i64 8, !6, i64 16}
!26 = !{!"_ZTSN7sc_core12sc_sensitiveUt_E", !7, i64 0}
!27 = !{!"_ZTSN7sc_core16sc_sensitive_posE", !6, i64 0, !28, i64 8, !6, i64 16}
!28 = !{!"_ZTSN7sc_core16sc_sensitive_posUt_E", !7, i64 0}
!29 = !{!"_ZTSN7sc_core16sc_sensitive_negE", !6, i64 0, !30, i64 8, !6, i64 16}
!30 = !{!"_ZTSN7sc_core16sc_sensitive_negUt_E", !7, i64 0}
!31 = !{!"bool", !7, i64 0}
!32 = !{!"int", !7, i64 0}
!33 = !{!"_ZTSN7sc_core8sc_eventE", !21, i64 0, !6, i64 32, !6, i64 40, !34, i64 48, !32, i64 52, !6, i64 56, !35, i64 64, !35, i64 88, !39, i64 112, !39, i64 136}
!34 = !{!"_ZTSN7sc_core8sc_event8notify_tE", !7, i64 0}
!35 = !{!"_ZTSSt6vectorIPN7sc_core17sc_method_processESaIS2_EE", !36, i64 0}
!36 = !{!"_ZTSSt12_Vector_baseIPN7sc_core17sc_method_processESaIS2_EE", !37, i64 0}
!37 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core17sc_method_processESaIS2_EE12_Vector_implE", !38, i64 0}
!38 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core17sc_method_processESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!39 = !{!"_ZTSSt6vectorIPN7sc_core17sc_thread_processESaIS2_EE", !40, i64 0}
!40 = !{!"_ZTSSt12_Vector_baseIPN7sc_core17sc_thread_processESaIS2_EE", !41, i64 0}
!41 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core17sc_thread_processESaIS2_EE12_Vector_implE", !42, i64 0}
!42 = !{!"_ZTSNSt12_Vector_baseIPN7sc_core17sc_thread_processESaIS2_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!43 = !{!"_ZTSN7sc_core9sc_signalIiLNS_16sc_writer_policyE0EEE", !44, i64 0, !47, i64 16, !48, i64 144, !6, i64 168, !32, i64 176, !51, i64 184, !32, i64 192}
!44 = !{!"_ZTSN7sc_core18sc_signal_inout_ifIiEE", !45, i64 0, !46, i64 8}
!45 = !{!"_ZTSN7sc_core15sc_signal_in_ifIiEE"}
!46 = !{!"_ZTSN7sc_core18sc_signal_write_ifIiEE"}
!47 = !{!"_ZTSN7sc_core15sc_prim_channelE", !12, i64 0, !6, i64 112, !6, i64 120}
!48 = !{!"_ZTSN7sc_core22sc_writer_policy_checkILNS_16sc_writer_policyE0EEE", !49, i64 0, !50, i64 8}
!49 = !{!"_ZTSN7sc_core27sc_writer_policy_check_portE", !6, i64 0}
!50 = !{!"_ZTSN7sc_core28sc_writer_policy_check_writeE", !31, i64 0, !6, i64 8}
!51 = !{!"long long", !7, i64 0}
!52 = !{!"_ZTSN7sc_core7sc_fifoIiEE", !53, i64 0, !56, i64 16, !47, i64 32, !32, i64 160, !6, i64 168, !32, i64 176, !32, i64 180, !32, i64 184, !6, i64 192, !6, i64 200, !32, i64 208, !32, i64 212, !32, i64 216, !33, i64 224, !33, i64 384}
!53 = !{!"_ZTSN7sc_core13sc_fifo_in_ifIiEE", !54, i64 0, !55, i64 8}
!54 = !{!"_ZTSN7sc_core25sc_fifo_nonblocking_in_ifIiEE"}
!55 = !{!"_ZTSN7sc_core22sc_fifo_blocking_in_ifIiEE"}
!56 = !{!"_ZTSN7sc_core14sc_fifo_out_ifIiEE", !57, i64 0, !58, i64 8}
!57 = !{!"_ZTSN7sc_core26sc_fifo_nonblocking_out_ifIiEE"}
!58 = !{!"_ZTSN7sc_core23sc_fifo_blocking_out_ifIiEE"}
!59 = !{!"_ZTSN7sc_core12sc_semaphoreE", !60, i64 0, !12, i64 8, !33, i64 120, !32, i64 280}
!60 = !{!"_ZTSN7sc_core15sc_semaphore_ifE"}
!61 = !{!"_ZTSN7sc_core8sc_mutexE", !62, i64 0, !12, i64 8, !6, i64 120, !33, i64 128}
!62 = !{!"_ZTSN7sc_core11sc_mutex_ifE"}
!63 = !{i8 0, i8 2}
!64 = !{}


; Effective O3 passes: EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass