; LLVM IR from ronan-kerviche/glip-lib :: GLIP-Lib/src/Core (Filter)

; 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::__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::allocator" = type { i8 }
%"class.Glip::Exception" = type { %"class.std::exception", i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, %"class.std::__cxx11::basic_string", i8, i8, %"class.std::vector.21" }
%"class.std::exception" = type { ptr }
%"class.std::vector.21" = type { %"struct.std::_Vector_base.22" }
%"struct.std::_Vector_base.22" = type { %"struct.std::_Vector_base<Glip::Exception, std::allocator<Glip::Exception>>::_Vector_impl" }
%"struct.std::_Vector_base<Glip::Exception, std::allocator<Glip::Exception>>::_Vector_impl" = type { %"struct.std::_Vector_base<Glip::Exception, std::allocator<Glip::Exception>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Glip::Exception, std::allocator<Glip::Exception>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.Glip::CorePipeline::Filter" = type { ptr, [6 x ptr], ptr, ptr, i8, i8, %"class.std::vector.39", %"class.Glip::CorePipeline::Component.base", %"class.Glip::CorePipeline::AbstractComponentLayout", %"class.Glip::CorePipeline::AbstractFilterLayout.base", [4 x i8], %"class.Glip::CoreGL::HdlAbstractTextureFormat.base" }
%"class.std::vector.39" = type { %"struct.std::_Vector_base.40" }
%"struct.std::_Vector_base.40" = type { %"struct.std::_Vector_base<Glip::CoreGL::HdlTexture *, std::allocator<Glip::CoreGL::HdlTexture *>>::_Vector_impl" }
%"struct.std::_Vector_base<Glip::CoreGL::HdlTexture *, std::allocator<Glip::CoreGL::HdlTexture *>>::_Vector_impl" = type { %"struct.std::_Vector_base<Glip::CoreGL::HdlTexture *, std::allocator<Glip::CoreGL::HdlTexture *>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Glip::CoreGL::HdlTexture *, std::allocator<Glip::CoreGL::HdlTexture *>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.Glip::CorePipeline::Component.base" = type { ptr, %"class.std::__cxx11::basic_string" }
%"class.Glip::CorePipeline::AbstractComponentLayout" = type { ptr, %"class.std::__cxx11::basic_string", %"class.std::vector", %"class.std::vector" }
%"class.std::vector" = type { %"struct.std::_Vector_base" }
%"struct.std::_Vector_base" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl" = type { %"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" }
%"struct.std::_Vector_base<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char>>>::_Vector_impl_data" = type { ptr, ptr, ptr }
%"class.Glip::CorePipeline::AbstractFilterLayout.base" = type <{ ptr, [6 x ptr], ptr, i8, i8, i8, i8, i32, i32, i32, i32 }>
%"class.Glip::CoreGL::HdlAbstractTextureFormat.base" = type <{ ptr, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32, i32 }>

@_ZTIN4Glip9ExceptionE = external constant ptr
@.str.1 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [47 x i8], align 1
@__const.Filter.listShaderTypeEnum = external hidden unnamed_addr constant [6 x i32], align 16
@.str.9 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [69 x i8], align 1

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

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

declare i32 @__gxx_personality_v0(...)

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

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

declare ptr @__cxa_allocate_exception(i64)

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

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

declare void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #6

; Function Attrs: nounwind
declare void @_ZN4Glip9ExceptionD1Ev(ptr noundef nonnull align 8 dereferenceable(152)) unnamed_addr #7

declare void @__cxa_throw(ptr, ptr, ptr)

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

declare void @__cxa_free_exception(ptr)

; Function Attrs: nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #8

declare ptr @__cxa_begin_catch(ptr)

declare void @_ZN4Glip9ExceptionC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 8 dereferenceable(152)) unnamed_addr #6

declare void @__cxa_end_catch()

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) #9

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK4Glip12CorePipeline20AbstractFilterLayout15getShaderSourceEj(ptr noundef nonnull align 8 dereferenceable(84), i32 noundef) #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(128) ptr @_ZNK4Glip12CorePipeline20AbstractFilterLayout16getGeometryModelEv(ptr noundef nonnull align 8 dereferenceable(84)) #5 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4Glip12CorePipeline6FilterC2ERKNS0_20AbstractFilterLayoutERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(104) %0, ptr noundef %1, ptr noundef nonnull align 8 dereferenceable(84) %2, ptr noundef nonnull align 8 dereferenceable(32) %3) unnamed_addr #5 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca %"class.std::__cxx11::basic_string", align 8
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::__cxx11::basic_string", align 8
  %19 = alloca %"class.std::__cxx11::basic_string", align 8
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca i32, align 4
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::allocator", align 1
  %26 = alloca i32, align 4
  %27 = alloca i1, align 1
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca %"class.std::__cxx11::basic_string", align 8
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::__cxx11::basic_string", align 8
  %32 = alloca %"class.std::__cxx11::basic_string", align 8
  %33 = alloca %"class.std::__cxx11::basic_string", align 8
  %34 = alloca %"class.std::__cxx11::basic_string", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca i32, align 4
  %38 = alloca %"class.std::__cxx11::basic_string", align 8
  %39 = alloca %"class.std::allocator", align 1
  %40 = alloca i32, align 4
  %41 = alloca i1, align 1
  %42 = alloca ptr, align 8
  %43 = alloca [6 x i32], align 16
  %44 = alloca i32, align 4
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca i32, align 4
  %48 = alloca %"class.Glip::Exception", align 8
  %49 = alloca %"class.std::__cxx11::basic_string", align 8
  %50 = alloca %"class.std::__cxx11::basic_string", align 8
  %51 = alloca %"class.std::__cxx11::basic_string", align 8
  %52 = alloca %"class.std::allocator", align 1
  %53 = alloca i32, align 4
  %54 = alloca i8, align 1
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca ptr, align 8
  %59 = alloca i32, align 4
  %60 = alloca %"class.Glip::Exception", align 8
  %61 = alloca %"class.std::__cxx11::basic_string", align 8
  %62 = alloca %"class.std::__cxx11::basic_string", align 8
  %63 = alloca %"class.std::__cxx11::basic_string", align 8
  %64 = alloca %"class.std::allocator", align 1
  %65 = alloca i32, align 4
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  store ptr %3, ptr %8, align 8, !tbaa !5
  %66 = load ptr, ptr %5, align 8
  %67 = load ptr, ptr %6, align 8
  %68 = load ptr, ptr %67, align 8
  store ptr %68, ptr %66, align 8, !tbaa !9
  %69 = getelementptr inbounds ptr, ptr %67, i64 1
  %70 = load ptr, ptr %69, align 8
  %71 = load ptr, ptr %66, align 8, !tbaa !9
  %72 = getelementptr i8, ptr %71, i64 -24
  %73 = load i64, ptr %72, align 8
  %74 = getelementptr inbounds i8, ptr %66, i64 %73
  store ptr %70, ptr %74, align 8, !tbaa !9
  %75 = getelementptr inbounds ptr, ptr %67, i64 2
  %76 = load ptr, ptr %75, align 8
  %77 = load ptr, ptr %66, align 8, !tbaa !9
  %78 = getelementptr i8, ptr %77, i64 -32
  %79 = load i64, ptr %78, align 8
  %80 = getelementptr inbounds i8, ptr %66, i64 %79
  store ptr %76, ptr %80, align 8, !tbaa !9
  %81 = getelementptr inbounds ptr, ptr %67, i64 3
  %82 = load ptr, ptr %81, align 8
  %83 = load ptr, ptr %66, align 8, !tbaa !9
  %84 = getelementptr i8, ptr %83, i64 -40
  %85 = load i64, ptr %84, align 8
  %86 = getelementptr inbounds i8, ptr %66, i64 %85
  store ptr %82, ptr %86, align 8, !tbaa !9
  %87 = getelementptr inbounds ptr, ptr %67, i64 4
  %88 = load ptr, ptr %87, align 8
  %89 = load ptr, ptr %66, align 8, !tbaa !9
  %90 = getelementptr i8, ptr %89, i64 -48
  %91 = load i64, ptr %90, align 8
  %92 = getelementptr inbounds i8, ptr %66, i64 %91
  store ptr %88, ptr %92, align 8, !tbaa !9
  %93 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 2
  store ptr null, ptr %93, align 8, !tbaa !11
  %94 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 3
  store ptr null, ptr %94, align 8, !tbaa !18
  %95 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 6
  call void @_ZNSt6vectorIPN4Glip6CoreGL10HdlTextureESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %95) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #11
  %96 = invoke noundef i32 @_ZN4Glip6CoreGL10HdlTexture16getMaxImageUnitsEv()
          to label %97 unwind label %104

97:                                               ; preds = %4
  store i32 %96, ptr %9, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #11
  %98 = invoke noundef i32 @_ZN4Glip6CoreGL6HdlFBO25getMaximumColorAttachmentEv()
          to label %99 unwind label %108

99:                                               ; preds = %97
  store i32 %98, ptr %12, align 4, !tbaa !19
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #11
  store i32 0, ptr %13, align 4, !tbaa !19
  br label %100

100:                                              ; preds = %117, %99
  %101 = load i32, ptr %13, align 4, !tbaa !19
  %102 = icmp ult i32 %101, 6
  br i1 %102, label %112, label %103

103:                                              ; preds = %100
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #11
  br label %120

104:                                              ; preds = %4
  %105 = landingpad { ptr, i32 }
          cleanup
  %106 = extractvalue { ptr, i32 } %105, 0
  store ptr %106, ptr %10, align 8
  %107 = extractvalue { ptr, i32 } %105, 1
  store i32 %107, ptr %11, align 4
  br label %681

108:                                              ; preds = %664, %306, %214, %120, %97
  %109 = landingpad { ptr, i32 }
          cleanup
  %110 = extractvalue { ptr, i32 } %109, 0
  store ptr %110, ptr %10, align 8
  %111 = extractvalue { ptr, i32 } %109, 1
  store i32 %111, ptr %11, align 4
  br label %680

112:                                              ; preds = %100
  %113 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 1
  %114 = load i32, ptr %13, align 4, !tbaa !19
  %115 = zext i32 %114 to i64
  %116 = getelementptr inbounds [6 x ptr], ptr %113, i64 0, i64 %115
  store ptr null, ptr %116, align 8, !tbaa !5
  br label %117

117:                                              ; preds = %112
  %118 = load i32, ptr %13, align 4, !tbaa !19
  %119 = add i32 %118, 1
  store i32 %119, ptr %13, align 4, !tbaa !19
  br label %100, !llvm.loop !21

120:                                              ; preds = %103
  %121 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 4
  store i8 1, ptr %121, align 8, !tbaa !23
  %122 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 5
  store i8 1, ptr %122, align 1, !tbaa !24
  %123 = load ptr, ptr %66, align 8, !tbaa !9
  %124 = getelementptr i8, ptr %123, i64 -32
  %125 = load i64, ptr %124, align 8
  %126 = getelementptr inbounds i8, ptr %66, i64 %125
  %127 = invoke noundef i32 @_ZNK4Glip12CorePipeline23AbstractComponentLayout15getNumInputPortEv(ptr noundef nonnull align 8 dereferenceable(88) %126)
          to label %128 unwind label %108

128:                                              ; preds = %120
  %129 = load i32, ptr %9, align 4, !tbaa !19
  %130 = icmp sgt i32 %127, %129
  br i1 %130, label %131, label %214

131:                                              ; preds = %128
  store i1 true, ptr %27, align 1
  %132 = call ptr @__cxa_allocate_exception(i64 152) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %14) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %15) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %16) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %17) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %18) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %19) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %20) #11
  %133 = load ptr, ptr %66, align 8, !tbaa !9
  %134 = getelementptr i8, ptr %133, i64 -24
  %135 = load i64, ptr %134, align 8
  %136 = getelementptr inbounds i8, ptr %66, i64 %135
  %137 = load ptr, ptr %136, align 8, !tbaa !9
  %138 = getelementptr inbounds ptr, ptr %137, i64 2
  %139 = load ptr, ptr %138, align 8
  invoke void %139(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 8 dereferenceable(40) %136)
          to label %140 unwind label %157

140:                                              ; preds = %131
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr noundef @.str.4, ptr noundef nonnull align 8 dereferenceable(32) %20)
          to label %141 unwind label %161

141:                                              ; preds = %140
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef @.str.5)
          to label %142 unwind label %165

142:                                              ; preds = %141
  call void @llvm.lifetime.start.p0(i64 32, ptr %21) #11
  invoke void @_ZN4Glip8toStringIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 4 dereferenceable(4) %9)
          to label %143 unwind label %169

143:                                              ; preds = %142
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr noundef nonnull align 8 dereferenceable(32) %18, ptr noundef nonnull align 8 dereferenceable(32) %21)
          to label %144 unwind label %173

144:                                              ; preds = %143
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef @.str.6)
          to label %145 unwind label %177

145:                                              ; preds = %144
  call void @llvm.lifetime.start.p0(i64 32, ptr %22) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #11
  %146 = load ptr, ptr %66, align 8, !tbaa !9
  %147 = getelementptr i8, ptr %146, i64 -32
  %148 = load i64, ptr %147, align 8
  %149 = getelementptr inbounds i8, ptr %66, i64 %148
  %150 = invoke noundef i32 @_ZNK4Glip12CorePipeline23AbstractComponentLayout15getNumInputPortEv(ptr noundef nonnull align 8 dereferenceable(88) %149)
          to label %151 unwind label %181

151:                                              ; preds = %145
  store i32 %150, ptr %23, align 4, !tbaa !19
  invoke void @_ZN4Glip8toStringIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 4 dereferenceable(4) %23)
          to label %152 unwind label %181

152:                                              ; preds = %151
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 8 dereferenceable(32) %16, ptr noundef nonnull align 8 dereferenceable(32) %22)
          to label %153 unwind label %185

153:                                              ; preds = %152
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef @.str.7)
          to label %154 unwind label %189

154:                                              ; preds = %153
  call void @llvm.lifetime.start.p0(i64 1, ptr %25) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %25)
          to label %155 unwind label %193

155:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #11
  store i32 1, ptr %26, align 4, !tbaa !25
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %132, ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef %24, i32 noundef 415, ptr noundef nonnull align 4 dereferenceable(4) %26)
          to label %156 unwind label %197

156:                                              ; preds = %155
  store i1 false, ptr %27, align 1
  invoke void @__cxa_throw(ptr %132, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #12
          to label %690 unwind label %197

157:                                              ; preds = %131
  %158 = landingpad { ptr, i32 }
          cleanup
  %159 = extractvalue { ptr, i32 } %158, 0
  store ptr %159, ptr %10, align 8
  %160 = extractvalue { ptr, i32 } %158, 1
  store i32 %160, ptr %11, align 4
  br label %210

161:                                              ; preds = %140
  %162 = landingpad { ptr, i32 }
          cleanup
  %163 = extractvalue { ptr, i32 } %162, 0
  store ptr %163, ptr %10, align 8
  %164 = extractvalue { ptr, i32 } %162, 1
  store i32 %164, ptr %11, align 4
  br label %209

165:                                              ; preds = %141
  %166 = landingpad { ptr, i32 }
          cleanup
  %167 = extractvalue { ptr, i32 } %166, 0
  store ptr %167, ptr %10, align 8
  %168 = extractvalue { ptr, i32 } %166, 1
  store i32 %168, ptr %11, align 4
  br label %208

169:                                              ; preds = %142
  %170 = landingpad { ptr, i32 }
          cleanup
  %171 = extractvalue { ptr, i32 } %170, 0
  store ptr %171, ptr %10, align 8
  %172 = extractvalue { ptr, i32 } %170, 1
  store i32 %172, ptr %11, align 4
  br label %207

173:                                              ; preds = %143
  %174 = landingpad { ptr, i32 }
          cleanup
  %175 = extractvalue { ptr, i32 } %174, 0
  store ptr %175, ptr %10, align 8
  %176 = extractvalue { ptr, i32 } %174, 1
  store i32 %176, ptr %11, align 4
  br label %206

177:                                              ; preds = %144
  %178 = landingpad { ptr, i32 }
          cleanup
  %179 = extractvalue { ptr, i32 } %178, 0
  store ptr %179, ptr %10, align 8
  %180 = extractvalue { ptr, i32 } %178, 1
  store i32 %180, ptr %11, align 4
  br label %205

181:                                              ; preds = %151, %145
  %182 = landingpad { ptr, i32 }
          cleanup
  %183 = extractvalue { ptr, i32 } %182, 0
  store ptr %183, ptr %10, align 8
  %184 = extractvalue { ptr, i32 } %182, 1
  store i32 %184, ptr %11, align 4
  br label %204

185:                                              ; preds = %152
  %186 = landingpad { ptr, i32 }
          cleanup
  %187 = extractvalue { ptr, i32 } %186, 0
  store ptr %187, ptr %10, align 8
  %188 = extractvalue { ptr, i32 } %186, 1
  store i32 %188, ptr %11, align 4
  br label %203

189:                                              ; preds = %153
  %190 = landingpad { ptr, i32 }
          cleanup
  %191 = extractvalue { ptr, i32 } %190, 0
  store ptr %191, ptr %10, align 8
  %192 = extractvalue { ptr, i32 } %190, 1
  store i32 %192, ptr %11, align 4
  br label %202

193:                                              ; preds = %154
  %194 = landingpad { ptr, i32 }
          cleanup
  %195 = extractvalue { ptr, i32 } %194, 0
  store ptr %195, ptr %10, align 8
  %196 = extractvalue { ptr, i32 } %194, 1
  store i32 %196, ptr %11, align 4
  br label %201

197:                                              ; preds = %156, %155
  %198 = landingpad { ptr, i32 }
          cleanup
  %199 = extractvalue { ptr, i32 } %198, 0
  store ptr %199, ptr %10, align 8
  %200 = extractvalue { ptr, i32 } %198, 1
  store i32 %200, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #11
  br label %201

201:                                              ; preds = %197, %193
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %25) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %25) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #11
  br label %202

202:                                              ; preds = %201, %189
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #11
  br label %203

203:                                              ; preds = %202, %185
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #11
  br label %204

204:                                              ; preds = %203, %181
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %22) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #11
  br label %205

205:                                              ; preds = %204, %177
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #11
  br label %206

206:                                              ; preds = %205, %173
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #11
  br label %207

207:                                              ; preds = %206, %169
  call void @llvm.lifetime.end.p0(i64 32, ptr %21) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #11
  br label %208

208:                                              ; preds = %207, %165
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #11
  br label %209

209:                                              ; preds = %208, %161
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  br label %210

210:                                              ; preds = %209, %157
  call void @llvm.lifetime.end.p0(i64 32, ptr %20) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %19) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %16) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %15) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %14) #11
  %211 = load i1, ptr %27, align 1
  br i1 %211, label %212, label %213

212:                                              ; preds = %210
  call void @__cxa_free_exception(ptr %132) #11
  br label %213

213:                                              ; preds = %212, %210
  br label %680

214:                                              ; preds = %128
  %215 = load ptr, ptr %66, align 8, !tbaa !9
  %216 = getelementptr i8, ptr %215, i64 -32
  %217 = load i64, ptr %216, align 8
  %218 = getelementptr inbounds i8, ptr %66, i64 %217
  %219 = invoke noundef i32 @_ZNK4Glip12CorePipeline23AbstractComponentLayout16getNumOutputPortEv(ptr noundef nonnull align 8 dereferenceable(88) %218)
          to label %220 unwind label %108

220:                                              ; preds = %214
  %221 = load i32, ptr %12, align 4, !tbaa !19
  %222 = icmp sgt i32 %219, %221
  br i1 %222, label %223, label %306

223:                                              ; preds = %220
  store i1 true, ptr %41, align 1
  %224 = call ptr @__cxa_allocate_exception(i64 152) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %28) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %29) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %30) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %31) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %32) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %33) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %34) #11
  %225 = load ptr, ptr %66, align 8, !tbaa !9
  %226 = getelementptr i8, ptr %225, i64 -24
  %227 = load i64, ptr %226, align 8
  %228 = getelementptr inbounds i8, ptr %66, i64 %227
  %229 = load ptr, ptr %228, align 8, !tbaa !9
  %230 = getelementptr inbounds ptr, ptr %229, i64 2
  %231 = load ptr, ptr %230, align 8
  invoke void %231(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr noundef nonnull align 8 dereferenceable(40) %228)
          to label %232 unwind label %249

232:                                              ; preds = %223
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %33, ptr noundef @.str.4, ptr noundef nonnull align 8 dereferenceable(32) %34)
          to label %233 unwind label %253

233:                                              ; preds = %232
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr noundef nonnull align 8 dereferenceable(32) %33, ptr noundef @.str.8)
          to label %234 unwind label %257

234:                                              ; preds = %233
  call void @llvm.lifetime.start.p0(i64 32, ptr %35) #11
  invoke void @_ZN4Glip8toStringIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull align 4 dereferenceable(4) %12)
          to label %235 unwind label %261

235:                                              ; preds = %234
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %31, ptr noundef nonnull align 8 dereferenceable(32) %32, ptr noundef nonnull align 8 dereferenceable(32) %35)
          to label %236 unwind label %265

236:                                              ; preds = %235
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr noundef nonnull align 8 dereferenceable(32) %31, ptr noundef @.str.6)
          to label %237 unwind label %269

237:                                              ; preds = %236
  call void @llvm.lifetime.start.p0(i64 32, ptr %36) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #11
  %238 = load ptr, ptr %66, align 8, !tbaa !9
  %239 = getelementptr i8, ptr %238, i64 -32
  %240 = load i64, ptr %239, align 8
  %241 = getelementptr inbounds i8, ptr %66, i64 %240
  %242 = invoke noundef i32 @_ZNK4Glip12CorePipeline23AbstractComponentLayout15getNumInputPortEv(ptr noundef nonnull align 8 dereferenceable(88) %241)
          to label %243 unwind label %273

243:                                              ; preds = %237
  store i32 %242, ptr %37, align 4, !tbaa !19
  invoke void @_ZN4Glip8toStringIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 4 dereferenceable(4) %37)
          to label %244 unwind label %273

244:                                              ; preds = %243
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %245 unwind label %277

245:                                              ; preds = %244
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 8 dereferenceable(32) %29, ptr noundef @.str.7)
          to label %246 unwind label %281

246:                                              ; preds = %245
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %38, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %39)
          to label %247 unwind label %285

247:                                              ; preds = %246
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #11
  store i32 1, ptr %40, align 4, !tbaa !25
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %224, ptr noundef nonnull align 8 dereferenceable(32) %28, ptr noundef %38, i32 noundef 418, ptr noundef nonnull align 4 dereferenceable(4) %40)
          to label %248 unwind label %289

248:                                              ; preds = %247
  store i1 false, ptr %41, align 1
  invoke void @__cxa_throw(ptr %224, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #12
          to label %690 unwind label %289

249:                                              ; preds = %223
  %250 = landingpad { ptr, i32 }
          cleanup
  %251 = extractvalue { ptr, i32 } %250, 0
  store ptr %251, ptr %10, align 8
  %252 = extractvalue { ptr, i32 } %250, 1
  store i32 %252, ptr %11, align 4
  br label %302

253:                                              ; preds = %232
  %254 = landingpad { ptr, i32 }
          cleanup
  %255 = extractvalue { ptr, i32 } %254, 0
  store ptr %255, ptr %10, align 8
  %256 = extractvalue { ptr, i32 } %254, 1
  store i32 %256, ptr %11, align 4
  br label %301

257:                                              ; preds = %233
  %258 = landingpad { ptr, i32 }
          cleanup
  %259 = extractvalue { ptr, i32 } %258, 0
  store ptr %259, ptr %10, align 8
  %260 = extractvalue { ptr, i32 } %258, 1
  store i32 %260, ptr %11, align 4
  br label %300

261:                                              ; preds = %234
  %262 = landingpad { ptr, i32 }
          cleanup
  %263 = extractvalue { ptr, i32 } %262, 0
  store ptr %263, ptr %10, align 8
  %264 = extractvalue { ptr, i32 } %262, 1
  store i32 %264, ptr %11, align 4
  br label %299

265:                                              ; preds = %235
  %266 = landingpad { ptr, i32 }
          cleanup
  %267 = extractvalue { ptr, i32 } %266, 0
  store ptr %267, ptr %10, align 8
  %268 = extractvalue { ptr, i32 } %266, 1
  store i32 %268, ptr %11, align 4
  br label %298

269:                                              ; preds = %236
  %270 = landingpad { ptr, i32 }
          cleanup
  %271 = extractvalue { ptr, i32 } %270, 0
  store ptr %271, ptr %10, align 8
  %272 = extractvalue { ptr, i32 } %270, 1
  store i32 %272, ptr %11, align 4
  br label %297

273:                                              ; preds = %243, %237
  %274 = landingpad { ptr, i32 }
          cleanup
  %275 = extractvalue { ptr, i32 } %274, 0
  store ptr %275, ptr %10, align 8
  %276 = extractvalue { ptr, i32 } %274, 1
  store i32 %276, ptr %11, align 4
  br label %296

277:                                              ; preds = %244
  %278 = landingpad { ptr, i32 }
          cleanup
  %279 = extractvalue { ptr, i32 } %278, 0
  store ptr %279, ptr %10, align 8
  %280 = extractvalue { ptr, i32 } %278, 1
  store i32 %280, ptr %11, align 4
  br label %295

281:                                              ; preds = %245
  %282 = landingpad { ptr, i32 }
          cleanup
  %283 = extractvalue { ptr, i32 } %282, 0
  store ptr %283, ptr %10, align 8
  %284 = extractvalue { ptr, i32 } %282, 1
  store i32 %284, ptr %11, align 4
  br label %294

285:                                              ; preds = %246
  %286 = landingpad { ptr, i32 }
          cleanup
  %287 = extractvalue { ptr, i32 } %286, 0
  store ptr %287, ptr %10, align 8
  %288 = extractvalue { ptr, i32 } %286, 1
  store i32 %288, ptr %11, align 4
  br label %293

289:                                              ; preds = %248, %247
  %290 = landingpad { ptr, i32 }
          cleanup
  %291 = extractvalue { ptr, i32 } %290, 0
  store ptr %291, ptr %10, align 8
  %292 = extractvalue { ptr, i32 } %290, 1
  store i32 %292, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %38) #11
  br label %293

293:                                              ; preds = %289, %285
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %39) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #11
  br label %294

294:                                              ; preds = %293, %281
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %29) #11
  br label %295

295:                                              ; preds = %294, %277
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  br label %296

296:                                              ; preds = %295, %273
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %36) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #11
  br label %297

297:                                              ; preds = %296, %269
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #11
  br label %298

298:                                              ; preds = %297, %265
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  br label %299

299:                                              ; preds = %298, %261
  call void @llvm.lifetime.end.p0(i64 32, ptr %35) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #11
  br label %300

300:                                              ; preds = %299, %257
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %33) #11
  br label %301

301:                                              ; preds = %300, %253
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %34) #11
  br label %302

302:                                              ; preds = %301, %249
  call void @llvm.lifetime.end.p0(i64 32, ptr %34) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %33) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %32) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %31) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %30) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %29) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %28) #11
  %303 = load i1, ptr %41, align 1
  br i1 %303, label %304, label %305

304:                                              ; preds = %302
  call void @__cxa_free_exception(ptr %224) #11
  br label %305

305:                                              ; preds = %304, %302
  br label %680

306:                                              ; preds = %220
  %307 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 6
  %308 = load ptr, ptr %66, align 8, !tbaa !9
  %309 = getelementptr i8, ptr %308, i64 -32
  %310 = load i64, ptr %309, align 8
  %311 = getelementptr inbounds i8, ptr %66, i64 %310
  %312 = invoke noundef i32 @_ZNK4Glip12CorePipeline23AbstractComponentLayout15getNumInputPortEv(ptr noundef nonnull align 8 dereferenceable(88) %311)
          to label %313 unwind label %108

313:                                              ; preds = %306
  %314 = sext i32 %312 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #11
  store ptr null, ptr %42, align 8, !tbaa !5
  invoke void @_ZNSt6vectorIPN4Glip6CoreGL10HdlTextureESaIS3_EE6assignEmRKS3_(ptr noundef nonnull align 8 dereferenceable(24) %307, i64 noundef %314, ptr noundef nonnull align 8 dereferenceable(8) %42)
          to label %315 unwind label %325

315:                                              ; preds = %313
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  %316 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 88) #13
          to label %317 unwind label %329

317:                                              ; preds = %315
  invoke void @_ZN4Glip6CoreGL10HdlProgramC1Ev(ptr noundef nonnull align 8 dereferenceable(88) %316)
          to label %318 unwind label %333

318:                                              ; preds = %317
  %319 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 2
  store ptr %316, ptr %319, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 24, ptr %43) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %43, ptr align 16 @__const.Filter.listShaderTypeEnum, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #11
  store i32 0, ptr %44, align 4, !tbaa !19
  br label %320

320:                                              ; preds = %380, %318
  %321 = load i32, ptr %44, align 4, !tbaa !19
  %322 = zext i32 %321 to i64
  %323 = icmp ult i64 %322, 6
  br i1 %323, label %337, label %324

324:                                              ; preds = %320
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %384

325:                                              ; preds = %313
  %326 = landingpad { ptr, i32 }
          cleanup
  %327 = extractvalue { ptr, i32 } %326, 0
  store ptr %327, ptr %10, align 8
  %328 = extractvalue { ptr, i32 } %326, 1
  store i32 %328, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #11
  br label %680

329:                                              ; preds = %315
  %330 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4Glip9ExceptionE
  %331 = extractvalue { ptr, i32 } %330, 0
  store ptr %331, ptr %10, align 8
  %332 = extractvalue { ptr, i32 } %330, 1
  store i32 %332, ptr %11, align 4
  br label %393

333:                                              ; preds = %317
  %334 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4Glip9ExceptionE
  %335 = extractvalue { ptr, i32 } %334, 0
  store ptr %335, ptr %10, align 8
  %336 = extractvalue { ptr, i32 } %334, 1
  store i32 %336, ptr %11, align 4
  call void @_ZdlPvm(ptr noundef %316, i64 noundef 88) #14
  br label %393

337:                                              ; preds = %320
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #11
  %338 = load ptr, ptr %66, align 8, !tbaa !9
  %339 = getelementptr i8, ptr %338, i64 -40
  %340 = load i64, ptr %339, align 8
  %341 = getelementptr inbounds i8, ptr %66, i64 %340
  %342 = load i32, ptr %44, align 4, !tbaa !19
  %343 = zext i32 %342 to i64
  %344 = getelementptr inbounds [6 x i32], ptr %43, i64 0, i64 %343
  %345 = load i32, ptr %344, align 4, !tbaa !19
  %346 = invoke noundef ptr @_ZNK4Glip12CorePipeline20AbstractFilterLayout15getShaderSourceEj(ptr noundef nonnull align 8 dereferenceable(84) %341, i32 noundef %345)
          to label %347 unwind label %371

347:                                              ; preds = %337
  store ptr %346, ptr %45, align 8, !tbaa !5
  %348 = load ptr, ptr %45, align 8, !tbaa !5
  %349 = icmp ne ptr %348, null
  br i1 %349, label %350, label %379

350:                                              ; preds = %347
  %351 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 280) #13
          to label %352 unwind label %371

352:                                              ; preds = %350
  %353 = load i32, ptr %44, align 4, !tbaa !19
  %354 = zext i32 %353 to i64
  %355 = getelementptr inbounds [6 x i32], ptr %43, i64 0, i64 %354
  %356 = load i32, ptr %355, align 4, !tbaa !19
  %357 = load ptr, ptr %45, align 8, !tbaa !5
  invoke void @_ZN4Glip6CoreGL9HdlShaderC1EjRKNS0_12ShaderSourceE(ptr noundef nonnull align 8 dereferenceable(280) %351, i32 noundef %356, ptr noundef nonnull align 8 dereferenceable(272) %357)
          to label %358 unwind label %375

358:                                              ; preds = %352
  %359 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 1
  %360 = load i32, ptr %44, align 4, !tbaa !19
  %361 = zext i32 %360 to i64
  %362 = getelementptr inbounds [6 x ptr], ptr %359, i64 0, i64 %361
  store ptr %351, ptr %362, align 8, !tbaa !5
  %363 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 2
  %364 = load ptr, ptr %363, align 8, !tbaa !11
  %365 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 1
  %366 = load i32, ptr %44, align 4, !tbaa !19
  %367 = zext i32 %366 to i64
  %368 = getelementptr inbounds [6 x ptr], ptr %365, i64 0, i64 %367
  %369 = load ptr, ptr %368, align 8, !tbaa !5
  invoke void @_ZN4Glip6CoreGL10HdlProgram12updateShaderERKNS0_9HdlShaderEb(ptr noundef nonnull align 8 dereferenceable(88) %364, ptr noundef nonnull align 8 dereferenceable(280) %369, i1 noundef zeroext false)
          to label %370 unwind label %371

370:                                              ; preds = %358
  br label %379

371:                                              ; preds = %358, %350, %337
  %372 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4Glip9ExceptionE
  %373 = extractvalue { ptr, i32 } %372, 0
  store ptr %373, ptr %10, align 8
  %374 = extractvalue { ptr, i32 } %372, 1
  store i32 %374, ptr %11, align 4
  br label %383

375:                                              ; preds = %352
  %376 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4Glip9ExceptionE
  %377 = extractvalue { ptr, i32 } %376, 0
  store ptr %377, ptr %10, align 8
  %378 = extractvalue { ptr, i32 } %376, 1
  store i32 %378, ptr %11, align 4
  call void @_ZdlPvm(ptr noundef %351, i64 noundef 280) #14
  br label %383

379:                                              ; preds = %370, %347
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #11
  br label %380

380:                                              ; preds = %379
  %381 = load i32, ptr %44, align 4, !tbaa !19
  %382 = add i32 %381, 1
  store i32 %382, ptr %44, align 4, !tbaa !19
  br label %320, !llvm.loop !27

383:                                              ; preds = %375, %371
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %392

384:                                              ; preds = %324
  %385 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 2
  %386 = load ptr, ptr %385, align 8, !tbaa !11
  invoke void @_ZN4Glip6CoreGL10HdlProgram4linkEv(ptr noundef nonnull align 8 dereferenceable(88) %386)
          to label %387 unwind label %388

387:                                              ; preds = %384
  call void @llvm.lifetime.end.p0(i64 24, ptr %43) #11
  br label %473

388:                                              ; preds = %384
  %389 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4Glip9ExceptionE
  %390 = extractvalue { ptr, i32 } %389, 0
  store ptr %390, ptr %10, align 8
  %391 = extractvalue { ptr, i32 } %389, 1
  store i32 %391, ptr %11, align 4
  br label %392

392:                                              ; preds = %388, %383
  call void @llvm.lifetime.end.p0(i64 24, ptr %43) #11
  br label %393

393:                                              ; preds = %392, %333, %329
  %394 = load i32, ptr %11, align 4
  %395 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN4Glip9ExceptionE) #11
  %396 = icmp eq i32 %394, %395
  br i1 %396, label %397, label %680

397:                                              ; preds = %393
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #11
  %398 = load ptr, ptr %10, align 8
  %399 = call ptr @__cxa_begin_catch(ptr %398) #11
  store ptr %399, ptr %46, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #11
  store i32 0, ptr %47, align 4, !tbaa !19
  br label %400

400:                                              ; preds = %417, %397
  %401 = load i32, ptr %47, align 4, !tbaa !19
  %402 = icmp ult i32 %401, 6
  br i1 %402, label %404, label %403

403:                                              ; preds = %400
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %420

404:                                              ; preds = %400
  %405 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 1
  %406 = load i32, ptr %47, align 4, !tbaa !19
  %407 = zext i32 %406 to i64
  %408 = getelementptr inbounds [6 x ptr], ptr %405, i64 0, i64 %407
  %409 = load ptr, ptr %408, align 8, !tbaa !5
  %410 = icmp eq ptr %409, null
  br i1 %410, label %412, label %411

411:                                              ; preds = %404
  call void @_ZN4Glip6CoreGL9HdlShaderD1Ev(ptr noundef nonnull align 8 dereferenceable(280) %409) #11
  call void @_ZdlPvm(ptr noundef %409, i64 noundef 280) #14
  br label %412

412:                                              ; preds = %411, %404
  %413 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 1
  %414 = load i32, ptr %47, align 4, !tbaa !19
  %415 = zext i32 %414 to i64
  %416 = getelementptr inbounds [6 x ptr], ptr %413, i64 0, i64 %415
  store ptr null, ptr %416, align 8, !tbaa !5
  br label %417

417:                                              ; preds = %412
  %418 = load i32, ptr %47, align 4, !tbaa !19
  %419 = add i32 %418, 1
  store i32 %419, ptr %47, align 4, !tbaa !19
  br label %400, !llvm.loop !28

420:                                              ; preds = %403
  %421 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 2
  %422 = load ptr, ptr %421, align 8, !tbaa !11
  %423 = icmp eq ptr %422, null
  br i1 %423, label %425, label %424

424:                                              ; preds = %420
  call void @_ZN4Glip6CoreGL10HdlProgramD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %422) #11
  call void @_ZdlPvm(ptr noundef %422, i64 noundef 88) #14
  br label %425

425:                                              ; preds = %424, %420
  %426 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 2
  store ptr null, ptr %426, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 152, ptr %48) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %49) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %50) #11
  %427 = load ptr, ptr %66, align 8, !tbaa !9
  %428 = getelementptr i8, ptr %427, i64 -24
  %429 = load i64, ptr %428, align 8
  %430 = getelementptr inbounds i8, ptr %66, i64 %429
  %431 = load ptr, ptr %430, align 8, !tbaa !9
  %432 = getelementptr inbounds ptr, ptr %431, i64 2
  %433 = load ptr, ptr %432, align 8
  invoke void %433(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %50, ptr noundef nonnull align 8 dereferenceable(40) %430)
          to label %434 unwind label %443

434:                                              ; preds = %425
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %49, ptr noundef @.str.9, ptr noundef nonnull align 8 dereferenceable(32) %50)
          to label %435 unwind label %447

435:                                              ; preds = %434
  call void @llvm.lifetime.start.p0(i64 1, ptr %52) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %51, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %52)
          to label %436 unwind label %451

436:                                              ; preds = %435
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #11
  store i32 1, ptr %53, align 4, !tbaa !25
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %48, ptr noundef nonnull align 8 dereferenceable(32) %49, ptr noundef %51, i32 noundef 455, ptr noundef nonnull align 4 dereferenceable(4) %53)
          to label %437 unwind label %455

437:                                              ; preds = %436
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #11
  %438 = load ptr, ptr %46, align 8, !tbaa !5
  %439 = invoke noundef nonnull align 8 dereferenceable(152) ptr @_ZN4Glip9ExceptionlsERKS0_(ptr noundef nonnull align 8 dereferenceable(152) %48, ptr noundef nonnull align 8 dereferenceable(152) %438)
          to label %440 unwind label %462

440:                                              ; preds = %437
  %441 = call ptr @__cxa_allocate_exception(i64 152) #11
  invoke void @_ZN4Glip9ExceptionC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(152) %441, ptr noundef nonnull align 8 dereferenceable(152) %48)
          to label %442 unwind label %466

442:                                              ; preds = %440
  invoke void @__cxa_throw(ptr %441, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #12
          to label %690 unwind label %462

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

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

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

455:                                              ; preds = %436
  %456 = landingpad { ptr, i32 }
          cleanup
  %457 = extractvalue { ptr, i32 } %456, 0
  store ptr %457, ptr %10, align 8
  %458 = extractvalue { ptr, i32 } %456, 1
  store i32 %458, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %51) #11
  br label %459

459:                                              ; preds = %455, %451
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %52) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %52) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %49) #11
  br label %460

460:                                              ; preds = %459, %447
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %50) #11
  br label %461

461:                                              ; preds = %460, %443
  call void @llvm.lifetime.end.p0(i64 32, ptr %50) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %49) #11
  br label %471

462:                                              ; preds = %442, %437
  %463 = landingpad { ptr, i32 }
          cleanup
  %464 = extractvalue { ptr, i32 } %463, 0
  store ptr %464, ptr %10, align 8
  %465 = extractvalue { ptr, i32 } %463, 1
  store i32 %465, ptr %11, align 4
  br label %470

466:                                              ; preds = %440
  %467 = landingpad { ptr, i32 }
          cleanup
  %468 = extractvalue { ptr, i32 } %467, 0
  store ptr %468, ptr %10, align 8
  %469 = extractvalue { ptr, i32 } %467, 1
  store i32 %469, ptr %11, align 4
  call void @__cxa_free_exception(ptr %441) #11
  br label %470

470:                                              ; preds = %466, %462
  call void @_ZN4Glip9ExceptionD1Ev(ptr noundef nonnull align 8 dereferenceable(152) %48) #11
  br label %471

471:                                              ; preds = %470, %461
  call void @llvm.lifetime.end.p0(i64 152, ptr %48) #11
  invoke void @__cxa_end_catch()
          to label %472 unwind label %687

472:                                              ; preds = %471
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #11
  br label %680

473:                                              ; preds = %387
  call void @llvm.lifetime.start.p0(i64 1, ptr %54) #11
  store i8 1, ptr %54, align 1, !tbaa !29
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #11
  store i32 0, ptr %55, align 4, !tbaa !19
  br label %474

474:                                              ; preds = %501, %473
  %475 = load i32, ptr %55, align 4, !tbaa !19
  %476 = icmp ult i32 %475, 6
  br i1 %476, label %478, label %477

477:                                              ; preds = %474
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #11
  br label %508

478:                                              ; preds = %474
  %479 = load i8, ptr %54, align 1, !tbaa !29, !range !30, !noundef !31
  %480 = trunc i8 %479 to i1
  br i1 %480, label %481, label %498

481:                                              ; preds = %478
  %482 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 1
  %483 = load i32, ptr %55, align 4, !tbaa !19
  %484 = zext i32 %483 to i64
  %485 = getelementptr inbounds [6 x ptr], ptr %482, i64 0, i64 %484
  %486 = load ptr, ptr %485, align 8, !tbaa !5
  %487 = icmp eq ptr %486, null
  br i1 %487, label %496, label %488

488:                                              ; preds = %481
  %489 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 1
  %490 = load i32, ptr %55, align 4, !tbaa !19
  %491 = zext i32 %490 to i64
  %492 = getelementptr inbounds [6 x ptr], ptr %489, i64 0, i64 %491
  %493 = load ptr, ptr %492, align 8, !tbaa !5
  %494 = invoke noundef zeroext i1 @_ZNK4Glip6CoreGL12ShaderSource21requiresCompatibilityEv(ptr noundef nonnull align 8 dereferenceable(272) %493)
          to label %495 unwind label %504

495:                                              ; preds = %488
  br label %496

496:                                              ; preds = %495, %481
  %497 = phi i1 [ true, %481 ], [ %494, %495 ]
  br label %498

498:                                              ; preds = %496, %478
  %499 = phi i1 [ false, %478 ], [ %497, %496 ]
  %500 = zext i1 %499 to i8
  store i8 %500, ptr %54, align 1, !tbaa !29
  br label %501

501:                                              ; preds = %498
  %502 = load i32, ptr %55, align 4, !tbaa !19
  %503 = add i32 %502, 1
  store i32 %503, ptr %55, align 4, !tbaa !19
  br label %474, !llvm.loop !32

504:                                              ; preds = %488
  %505 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4Glip9ExceptionE
  %506 = extractvalue { ptr, i32 } %505, 0
  store ptr %506, ptr %10, align 8
  %507 = extractvalue { ptr, i32 } %505, 1
  store i32 %507, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #11
  br label %583

508:                                              ; preds = %477
  %509 = load i8, ptr %54, align 1, !tbaa !29, !range !30, !noundef !31
  %510 = trunc i8 %509 to i1
  br i1 %510, label %549, label %511

511:                                              ; preds = %508
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #11
  store i32 0, ptr %56, align 4, !tbaa !19
  br label %512

512:                                              ; preds = %538, %511
  %513 = load i32, ptr %56, align 4, !tbaa !19
  %514 = load ptr, ptr %66, align 8, !tbaa !9
  %515 = getelementptr i8, ptr %514, i64 -32
  %516 = load i64, ptr %515, align 8
  %517 = getelementptr inbounds i8, ptr %66, i64 %516
  %518 = invoke noundef i32 @_ZNK4Glip12CorePipeline23AbstractComponentLayout16getNumOutputPortEv(ptr noundef nonnull align 8 dereferenceable(88) %517)
          to label %519 unwind label %522

519:                                              ; preds = %512
  %520 = icmp slt i32 %513, %518
  br i1 %520, label %526, label %521

521:                                              ; preds = %519
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %541

522:                                              ; preds = %535, %526, %512
  %523 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4Glip9ExceptionE
  %524 = extractvalue { ptr, i32 } %523, 0
  store ptr %524, ptr %10, align 8
  %525 = extractvalue { ptr, i32 } %523, 1
  store i32 %525, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %583

526:                                              ; preds = %519
  %527 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 2
  %528 = load ptr, ptr %527, align 8, !tbaa !11
  %529 = load ptr, ptr %66, align 8, !tbaa !9
  %530 = getelementptr i8, ptr %529, i64 -32
  %531 = load i64, ptr %530, align 8
  %532 = getelementptr inbounds i8, ptr %66, i64 %531
  %533 = load i32, ptr %56, align 4, !tbaa !19
  %534 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK4Glip12CorePipeline23AbstractComponentLayout17getOutputPortNameB5cxx11Ei(ptr noundef nonnull align 8 dereferenceable(88) %532, i32 noundef %533)
          to label %535 unwind label %522

535:                                              ; preds = %526
  %536 = load i32, ptr %56, align 4, !tbaa !19
  invoke void @_ZN4Glip6CoreGL10HdlProgram19setFragmentLocationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(88) %528, ptr noundef nonnull align 8 dereferenceable(32) %534, i32 noundef %536)
          to label %537 unwind label %522

537:                                              ; preds = %535
  br label %538

538:                                              ; preds = %537
  %539 = load i32, ptr %56, align 4, !tbaa !19
  %540 = add nsw i32 %539, 1
  store i32 %540, ptr %56, align 4, !tbaa !19
  br label %512, !llvm.loop !33

541:                                              ; preds = %521
  %542 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 2
  %543 = load ptr, ptr %542, align 8, !tbaa !11
  invoke void @_ZN4Glip6CoreGL10HdlProgram4linkEv(ptr noundef nonnull align 8 dereferenceable(88) %543)
          to label %544 unwind label %545

544:                                              ; preds = %541
  br label %549

545:                                              ; preds = %579, %541
  %546 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4Glip9ExceptionE
  %547 = extractvalue { ptr, i32 } %546, 0
  store ptr %547, ptr %10, align 8
  %548 = extractvalue { ptr, i32 } %546, 1
  store i32 %548, ptr %11, align 4
  br label %583

549:                                              ; preds = %544, %508
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #11
  store i32 0, ptr %57, align 4, !tbaa !19
  br label %550

550:                                              ; preds = %576, %549
  %551 = load i32, ptr %57, align 4, !tbaa !19
  %552 = load ptr, ptr %66, align 8, !tbaa !9
  %553 = getelementptr i8, ptr %552, i64 -32
  %554 = load i64, ptr %553, align 8
  %555 = getelementptr inbounds i8, ptr %66, i64 %554
  %556 = invoke noundef i32 @_ZNK4Glip12CorePipeline23AbstractComponentLayout15getNumInputPortEv(ptr noundef nonnull align 8 dereferenceable(88) %555)
          to label %557 unwind label %560

557:                                              ; preds = %550
  %558 = icmp slt i32 %551, %556
  br i1 %558, label %564, label %559

559:                                              ; preds = %557
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %579

560:                                              ; preds = %573, %564, %550
  %561 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4Glip9ExceptionE
  %562 = extractvalue { ptr, i32 } %561, 0
  store ptr %562, ptr %10, align 8
  %563 = extractvalue { ptr, i32 } %561, 1
  store i32 %563, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %583

564:                                              ; preds = %557
  %565 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 2
  %566 = load ptr, ptr %565, align 8, !tbaa !11
  %567 = load ptr, ptr %66, align 8, !tbaa !9
  %568 = getelementptr i8, ptr %567, i64 -32
  %569 = load i64, ptr %568, align 8
  %570 = getelementptr inbounds i8, ptr %66, i64 %569
  %571 = load i32, ptr %57, align 4, !tbaa !19
  %572 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK4Glip12CorePipeline23AbstractComponentLayout16getInputPortNameB5cxx11Ei(ptr noundef nonnull align 8 dereferenceable(88) %570, i32 noundef %571)
          to label %573 unwind label %560

573:                                              ; preds = %564
  %574 = load i32, ptr %57, align 4, !tbaa !19
  invoke void @_ZN4Glip6CoreGL10HdlProgram6setVarERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjiiii(ptr noundef nonnull align 8 dereferenceable(88) %566, ptr noundef nonnull align 8 dereferenceable(32) %572, i32 noundef 5124, i32 noundef %574, i32 noundef 0, i32 noundef 0, i32 noundef 0)
          to label %575 unwind label %560

575:                                              ; preds = %573
  br label %576

576:                                              ; preds = %575
  %577 = load i32, ptr %57, align 4, !tbaa !19
  %578 = add nsw i32 %577, 1
  store i32 %578, ptr %57, align 4, !tbaa !19
  br label %550, !llvm.loop !34

579:                                              ; preds = %559
  %580 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 2
  %581 = load ptr, ptr %580, align 8, !tbaa !11
  invoke void @_ZN4Glip6CoreGL10HdlProgram11stopProgramEv()
          to label %582 unwind label %545

582:                                              ; preds = %579
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #11
  br label %664

583:                                              ; preds = %560, %545, %522, %504
  call void @llvm.lifetime.end.p0(i64 1, ptr %54) #11
  br label %584

584:                                              ; preds = %583
  %585 = load i32, ptr %11, align 4
  %586 = call i32 @llvm.eh.typeid.for.p0(ptr @_ZTIN4Glip9ExceptionE) #11
  %587 = icmp eq i32 %585, %586
  br i1 %587, label %588, label %680

588:                                              ; preds = %584
  call void @llvm.lifetime.start.p0(i64 8, ptr %58) #11
  %589 = load ptr, ptr %10, align 8
  %590 = call ptr @__cxa_begin_catch(ptr %589) #11
  store ptr %590, ptr %58, align 8
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #11
  store i32 0, ptr %59, align 4, !tbaa !19
  br label %591

591:                                              ; preds = %608, %588
  %592 = load i32, ptr %59, align 4, !tbaa !19
  %593 = icmp ult i32 %592, 6
  br i1 %593, label %595, label %594

594:                                              ; preds = %591
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %611

595:                                              ; preds = %591
  %596 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 1
  %597 = load i32, ptr %59, align 4, !tbaa !19
  %598 = zext i32 %597 to i64
  %599 = getelementptr inbounds [6 x ptr], ptr %596, i64 0, i64 %598
  %600 = load ptr, ptr %599, align 8, !tbaa !5
  %601 = icmp eq ptr %600, null
  br i1 %601, label %603, label %602

602:                                              ; preds = %595
  call void @_ZN4Glip6CoreGL9HdlShaderD1Ev(ptr noundef nonnull align 8 dereferenceable(280) %600) #11
  call void @_ZdlPvm(ptr noundef %600, i64 noundef 280) #14
  br label %603

603:                                              ; preds = %602, %595
  %604 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 1
  %605 = load i32, ptr %59, align 4, !tbaa !19
  %606 = zext i32 %605 to i64
  %607 = getelementptr inbounds [6 x ptr], ptr %604, i64 0, i64 %606
  store ptr null, ptr %607, align 8, !tbaa !5
  br label %608

608:                                              ; preds = %603
  %609 = load i32, ptr %59, align 4, !tbaa !19
  %610 = add i32 %609, 1
  store i32 %610, ptr %59, align 4, !tbaa !19
  br label %591, !llvm.loop !35

611:                                              ; preds = %594
  %612 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 2
  %613 = load ptr, ptr %612, align 8, !tbaa !11
  %614 = icmp eq ptr %613, null
  br i1 %614, label %616, label %615

615:                                              ; preds = %611
  call void @_ZN4Glip6CoreGL10HdlProgramD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %613) #11
  call void @_ZdlPvm(ptr noundef %613, i64 noundef 88) #14
  br label %616

616:                                              ; preds = %615, %611
  %617 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 2
  store ptr null, ptr %617, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 152, ptr %60) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %61) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr %62) #11
  %618 = load ptr, ptr %66, align 8, !tbaa !9
  %619 = getelementptr i8, ptr %618, i64 -24
  %620 = load i64, ptr %619, align 8
  %621 = getelementptr inbounds i8, ptr %66, i64 %620
  %622 = load ptr, ptr %621, align 8, !tbaa !9
  %623 = getelementptr inbounds ptr, ptr %622, i64 2
  %624 = load ptr, ptr %623, align 8
  invoke void %624(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %62, ptr noundef nonnull align 8 dereferenceable(40) %621)
          to label %625 unwind label %634

625:                                              ; preds = %616
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %61, ptr noundef @.str.10, ptr noundef nonnull align 8 dereferenceable(32) %62)
          to label %626 unwind label %638

626:                                              ; preds = %625
  call void @llvm.lifetime.start.p0(i64 1, ptr %64) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %63, ptr noundef @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %64)
          to label %627 unwind label %642

627:                                              ; preds = %626
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #11
  store i32 1, ptr %65, align 4, !tbaa !25
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %60, ptr noundef nonnull align 8 dereferenceable(32) %61, ptr noundef %63, i32 noundef 493, ptr noundef nonnull align 4 dereferenceable(4) %65)
          to label %628 unwind label %646

628:                                              ; preds = %627
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #11
  %629 = load ptr, ptr %58, align 8, !tbaa !5
  %630 = invoke noundef nonnull align 8 dereferenceable(152) ptr @_ZN4Glip9ExceptionlsERKS0_(ptr noundef nonnull align 8 dereferenceable(152) %60, ptr noundef nonnull align 8 dereferenceable(152) %629)
          to label %631 unwind label %653

631:                                              ; preds = %628
  %632 = call ptr @__cxa_allocate_exception(i64 152) #11
  invoke void @_ZN4Glip9ExceptionC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(152) %632, ptr noundef nonnull align 8 dereferenceable(152) %60)
          to label %633 unwind label %657

633:                                              ; preds = %631
  invoke void @__cxa_throw(ptr %632, ptr @_ZTIN4Glip9ExceptionE, ptr @_ZN4Glip9ExceptionD1Ev) #12
          to label %690 unwind label %653

634:                                              ; preds = %616
  %635 = landingpad { ptr, i32 }
          cleanup
  %636 = extractvalue { ptr, i32 } %635, 0
  store ptr %636, ptr %10, align 8
  %637 = extractvalue { ptr, i32 } %635, 1
  store i32 %637, ptr %11, align 4
  br label %652

638:                                              ; preds = %625
  %639 = landingpad { ptr, i32 }
          cleanup
  %640 = extractvalue { ptr, i32 } %639, 0
  store ptr %640, ptr %10, align 8
  %641 = extractvalue { ptr, i32 } %639, 1
  store i32 %641, ptr %11, align 4
  br label %651

642:                                              ; preds = %626
  %643 = landingpad { ptr, i32 }
          cleanup
  %644 = extractvalue { ptr, i32 } %643, 0
  store ptr %644, ptr %10, align 8
  %645 = extractvalue { ptr, i32 } %643, 1
  store i32 %645, ptr %11, align 4
  br label %650

646:                                              ; preds = %627
  %647 = landingpad { ptr, i32 }
          cleanup
  %648 = extractvalue { ptr, i32 } %647, 0
  store ptr %648, ptr %10, align 8
  %649 = extractvalue { ptr, i32 } %647, 1
  store i32 %649, ptr %11, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %63) #11
  br label %650

650:                                              ; preds = %646, %642
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %64) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %64) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %61) #11
  br label %651

651:                                              ; preds = %650, %638
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %62) #11
  br label %652

652:                                              ; preds = %651, %634
  call void @llvm.lifetime.end.p0(i64 32, ptr %62) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %61) #11
  br label %662

653:                                              ; preds = %633, %628
  %654 = landingpad { ptr, i32 }
          cleanup
  %655 = extractvalue { ptr, i32 } %654, 0
  store ptr %655, ptr %10, align 8
  %656 = extractvalue { ptr, i32 } %654, 1
  store i32 %656, ptr %11, align 4
  br label %661

657:                                              ; preds = %631
  %658 = landingpad { ptr, i32 }
          cleanup
  %659 = extractvalue { ptr, i32 } %658, 0
  store ptr %659, ptr %10, align 8
  %660 = extractvalue { ptr, i32 } %658, 1
  store i32 %660, ptr %11, align 4
  call void @__cxa_free_exception(ptr %632) #11
  br label %661

661:                                              ; preds = %657, %653
  call void @_ZN4Glip9ExceptionD1Ev(ptr noundef nonnull align 8 dereferenceable(152) %60) #11
  br label %662

662:                                              ; preds = %661, %652
  call void @llvm.lifetime.end.p0(i64 152, ptr %60) #11
  invoke void @__cxa_end_catch()
          to label %663 unwind label %687

663:                                              ; preds = %662
  call void @llvm.lifetime.end.p0(i64 8, ptr %58) #11
  br label %680

664:                                              ; preds = %582
  %665 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef 4) #13
          to label %666 unwind label %108

666:                                              ; preds = %664
  %667 = load ptr, ptr %66, align 8, !tbaa !9
  %668 = getelementptr i8, ptr %667, i64 -40
  %669 = load i64, ptr %668, align 8
  %670 = getelementptr inbounds i8, ptr %66, i64 %669
  %671 = invoke noundef nonnull align 8 dereferenceable(128) ptr @_ZNK4Glip12CorePipeline20AbstractFilterLayout16getGeometryModelEv(ptr noundef nonnull align 8 dereferenceable(84) %670)
          to label %672 unwind label %676

672:                                              ; preds = %666
  invoke void @_ZN4Glip12CorePipeline16GeometryInstanceC1ERKNS0_13GeometryModelEj(ptr noundef nonnull align 4 dereferenceable(4) %665, ptr noundef nonnull align 8 dereferenceable(128) %671, i32 noundef 35044)
          to label %673 unwind label %676

673:                                              ; preds = %672
  %674 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 3
  store ptr %665, ptr %674, align 8, !tbaa !18
  %675 = getelementptr inbounds %"class.Glip::CorePipeline::Filter", ptr %66, i32 0, i32 5
  store i8 0, ptr %675, align 1, !tbaa !24
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  ret void

676:                                              ; preds = %672, %666
  %677 = landingpad { ptr, i32 }
          cleanup
  %678 = extractvalue { ptr, i32 } %677, 0
  store ptr %678, ptr %10, align 8
  %679 = extractvalue { ptr, i32 } %677, 1
  store i32 %679, ptr %11, align 4
  call void @_ZdlPvm(ptr noundef %665, i64 noundef 4) #14
  br label %680

680:                                              ; preds = %676, %663, %584, %472, %393, %325, %305, %213, %108
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #11
  br label %681

681:                                              ; preds = %680, %104
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  call void @_ZNSt6vectorIPN4Glip6CoreGL10HdlTextureESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %95) #11
  br label %682

682:                                              ; preds = %681
  %683 = load ptr, ptr %10, align 8
  %684 = load i32, ptr %11, align 4
  %685 = insertvalue { ptr, i32 } poison, ptr %683, 0
  %686 = insertvalue { ptr, i32 } %685, i32 %684, 1
  resume { ptr, i32 } %686

687:                                              ; preds = %662, %471
  %688 = landingpad { ptr, i32 }
          catch ptr null
  %689 = extractvalue { ptr, i32 } %688, 0
  call void @__clang_call_terminate(ptr %689) #15
  unreachable

690:                                              ; preds = %633, %442, %248, %156
  unreachable
}

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

declare noundef i32 @_ZN4Glip6CoreGL10HdlTexture16getMaxImageUnitsEv() #6

declare noundef i32 @_ZN4Glip6CoreGL6HdlFBO25getMaximumColorAttachmentEv() #6

declare noundef i32 @_ZNK4Glip12CorePipeline23AbstractComponentLayout15getNumInputPortEv(ptr noundef nonnull align 8 dereferenceable(88)) #6

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

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

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

declare noundef i32 @_ZNK4Glip12CorePipeline23AbstractComponentLayout16getNumOutputPortEv(ptr noundef nonnull align 8 dereferenceable(88)) #6

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

declare void @_ZN4Glip6CoreGL10HdlProgramC1Ev(ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #6

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

declare void @_ZN4Glip6CoreGL9HdlShaderC1EjRKNS0_12ShaderSourceE(ptr noundef nonnull align 8 dereferenceable(280), i32 noundef, ptr noundef nonnull align 8 dereferenceable(272)) unnamed_addr #6

declare void @_ZN4Glip6CoreGL10HdlProgram12updateShaderERKNS0_9HdlShaderEb(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(280), i1 noundef zeroext) #6

declare void @_ZN4Glip6CoreGL10HdlProgram4linkEv(ptr noundef nonnull align 8 dereferenceable(88)) #6

; Function Attrs: nounwind
declare void @_ZN4Glip6CoreGL9HdlShaderD1Ev(ptr noundef nonnull align 8 dereferenceable(280)) unnamed_addr #7

; Function Attrs: nounwind
declare void @_ZN4Glip6CoreGL10HdlProgramD1Ev(ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #7

declare noundef nonnull align 8 dereferenceable(152) ptr @_ZN4Glip9ExceptionlsERKS0_(ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 8 dereferenceable(152)) #6

declare noundef zeroext i1 @_ZNK4Glip6CoreGL12ShaderSource21requiresCompatibilityEv(ptr noundef nonnull align 8 dereferenceable(272)) #6

declare void @_ZN4Glip6CoreGL10HdlProgram19setFragmentLocationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) #6

declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNK4Glip12CorePipeline23AbstractComponentLayout17getOutputPortNameB5cxx11Ei(ptr noundef nonnull align 8 dereferenceable(88), i32 noundef) #6

declare void @_ZN4Glip6CoreGL10HdlProgram6setVarERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjiiii(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #6

declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNK4Glip12CorePipeline23AbstractComponentLayout16getInputPortNameB5cxx11Ei(ptr noundef nonnull align 8 dereferenceable(88), i32 noundef) #6

declare void @_ZN4Glip6CoreGL10HdlProgram11stopProgramEv() #6

declare void @_ZN4Glip12CorePipeline16GeometryInstanceC1ERKNS0_13GeometryModelEj(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(128), i32 noundef) unnamed_addr #6

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"vtable pointer", !8, i64 0}
!11 = !{!12, !6, i64 56}
!12 = !{!"_ZTSN4Glip12CorePipeline6FilterE", !7, i64 8, !6, i64 56, !6, i64 64, !13, i64 72, !13, i64 73, !14, i64 80}
!13 = !{!"bool", !7, i64 0}
!14 = !{!"_ZTSSt6vectorIPN4Glip6CoreGL10HdlTextureESaIS3_EE", !15, i64 0}
!15 = !{!"_ZTSSt12_Vector_baseIPN4Glip6CoreGL10HdlTextureESaIS3_EE", !16, i64 0}
!16 = !{!"_ZTSNSt12_Vector_baseIPN4Glip6CoreGL10HdlTextureESaIS3_EE12_Vector_implE", !17, i64 0}
!17 = !{!"_ZTSNSt12_Vector_baseIPN4Glip6CoreGL10HdlTextureESaIS3_EE17_Vector_impl_dataE", !6, i64 0, !6, i64 8, !6, i64 16}
!18 = !{!12, !6, i64 64}
!19 = !{!20, !20, i64 0}
!20 = !{!"int", !7, i64 0}
!21 = distinct !{!21, !22}
!22 = !{!"llvm.loop.mustprogress"}
!23 = !{!12, !13, i64 72}
!24 = !{!12, !13, i64 73}
!25 = !{!26, !26, i64 0}
!26 = !{!"_ZTSN4Glip9Exception4TypeE", !7, i64 0}
!27 = distinct !{!27, !22}
!28 = distinct !{!28, !22}
!29 = !{!13, !13, i64 0}
!30 = !{i8 0, i8 2}
!31 = !{}
!32 = distinct !{!32, !22}
!33 = distinct !{!33, !22}
!34 = distinct !{!34, !22}
!35 = distinct !{!35, !22}


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

%"class.std::__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::allocator" = type { i8 }
%"class.Glip::Exception" = type { %"class.std::exception", i32, %"class.std::__cxx11::basic_string", %"class.std::__cxx11::basic_string", i32, %"class.std::__cxx11::basic_string", i8, i8, %"class.std::vector.21" }
%"class.std::exception" = type { ptr }
%"class.std::vector.21" = type { %"struct.std::_Vector_base.22" }
%"struct.std::_Vector_base.22" = type { %"struct.std::_Vector_base<Glip::Exception, std::allocator<Glip::Exception>>::_Vector_impl" }
%"struct.std::_Vector_base<Glip::Exception, std::allocator<Glip::Exception>>::_Vector_impl" = type { %"struct.std::_Vector_base<Glip::Exception, std::allocator<Glip::Exception>>::_Vector_impl_data" }
%"struct.std::_Vector_base<Glip::Exception, std::allocator<Glip::Exception>>::_Vector_impl_data" = type { ptr, ptr, ptr }

@_ZTIN4Glip9ExceptionE = external constant ptr
@.str.1 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.4 = external hidden unnamed_addr constant [25 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [13 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [47 x i8], align 1
@__const.Filter.listShaderTypeEnum = external hidden unnamed_addr constant [6 x i32], align 16
@.str.9 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [69 x i8], align 1

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

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

declare i32 @__gxx_personality_v0(...)

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

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

declare ptr @__cxa_allocate_exception(i64) local_unnamed_addr

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

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

declare void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 8 dereferenceable(32), ptr noundef, i32 noundef, ptr noundef nonnull align 4 dereferenceable(4)) unnamed_addr #6

; Function Attrs: nounwind
declare void @_ZN4Glip9ExceptionD1Ev(ptr noundef nonnull align 8 dereferenceable(152)) unnamed_addr #7

declare void @__cxa_throw(ptr, ptr, ptr) local_unnamed_addr

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

declare void @__cxa_free_exception(ptr) local_unnamed_addr

; Function Attrs: nofree nosync nounwind memory(none)
declare i32 @llvm.eh.typeid.for.p0(ptr) #8

declare ptr @__cxa_begin_catch(ptr) local_unnamed_addr

declare void @_ZN4Glip9ExceptionC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 8 dereferenceable(152)) unnamed_addr #6

declare void @__cxa_end_catch() local_unnamed_addr

; Function Attrs: noinline noreturn nounwind uwtable
declare hidden void @__clang_call_terminate(ptr noundef) local_unnamed_addr #9

; Function Attrs: mustprogress uwtable
declare dso_local noundef ptr @_ZNK4Glip12CorePipeline20AbstractFilterLayout15getShaderSourceEj(ptr noundef nonnull align 8 dereferenceable(84), i32 noundef) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
declare dso_local noundef nonnull align 8 dereferenceable(128) ptr @_ZNK4Glip12CorePipeline20AbstractFilterLayout16getGeometryModelEv(ptr noundef nonnull align 8 dereferenceable(84)) local_unnamed_addr #5 align 2

; Function Attrs: mustprogress uwtable
define dso_local void @_ZN4Glip12CorePipeline6FilterC2ERKNS0_20AbstractFilterLayoutERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(104) %0, ptr nocapture noundef readonly %1, ptr nocapture noundef nonnull readnone align 8 dereferenceable(84) %2, ptr nocapture noundef nonnull readnone align 8 dereferenceable(32) %3) unnamed_addr #5 align 2 personality ptr @__gxx_personality_v0 {
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca %"class.std::__cxx11::basic_string", align 8
  %8 = alloca %"class.std::__cxx11::basic_string", align 8
  %9 = alloca %"class.std::__cxx11::basic_string", align 8
  %10 = alloca %"class.std::__cxx11::basic_string", align 8
  %11 = alloca %"class.std::__cxx11::basic_string", align 8
  %12 = alloca %"class.std::__cxx11::basic_string", align 8
  %13 = alloca %"class.std::__cxx11::basic_string", align 8
  %14 = alloca %"class.std::__cxx11::basic_string", align 8
  %15 = alloca %"class.std::__cxx11::basic_string", align 8
  %16 = alloca i32, align 4
  %17 = alloca %"class.std::__cxx11::basic_string", align 8
  %18 = alloca %"class.std::allocator", align 1
  %19 = alloca i32, align 4
  %20 = alloca %"class.std::__cxx11::basic_string", align 8
  %21 = alloca %"class.std::__cxx11::basic_string", align 8
  %22 = alloca %"class.std::__cxx11::basic_string", align 8
  %23 = alloca %"class.std::__cxx11::basic_string", align 8
  %24 = alloca %"class.std::__cxx11::basic_string", align 8
  %25 = alloca %"class.std::__cxx11::basic_string", align 8
  %26 = alloca %"class.std::__cxx11::basic_string", align 8
  %27 = alloca %"class.std::__cxx11::basic_string", align 8
  %28 = alloca %"class.std::__cxx11::basic_string", align 8
  %29 = alloca i32, align 4
  %30 = alloca %"class.std::__cxx11::basic_string", align 8
  %31 = alloca %"class.std::allocator", align 1
  %32 = alloca i32, align 4
  %33 = alloca ptr, align 8
  %34 = alloca %"class.Glip::Exception", align 8
  %35 = alloca %"class.std::__cxx11::basic_string", align 8
  %36 = alloca %"class.std::__cxx11::basic_string", align 8
  %37 = alloca %"class.std::__cxx11::basic_string", align 8
  %38 = alloca %"class.std::allocator", align 1
  %39 = alloca i32, align 4
  %40 = alloca %"class.Glip::Exception", align 8
  %41 = alloca %"class.std::__cxx11::basic_string", align 8
  %42 = alloca %"class.std::__cxx11::basic_string", align 8
  %43 = alloca %"class.std::__cxx11::basic_string", align 8
  %44 = alloca %"class.std::allocator", align 1
  %45 = alloca i32, align 4
  %46 = load ptr, ptr %1, align 8
  store ptr %46, ptr %0, align 8, !tbaa !5
  %47 = getelementptr inbounds i8, ptr %1, i64 8
  %48 = load ptr, ptr %47, align 8
  %49 = getelementptr i8, ptr %46, i64 -24
  %50 = load i64, ptr %49, align 8
  %51 = getelementptr inbounds i8, ptr %0, i64 %50
  store ptr %48, ptr %51, align 8, !tbaa !5
  %52 = getelementptr inbounds i8, ptr %1, i64 16
  %53 = load ptr, ptr %52, align 8
  %54 = load ptr, ptr %0, align 8, !tbaa !5
  %55 = getelementptr i8, ptr %54, i64 -32
  %56 = load i64, ptr %55, align 8
  %57 = getelementptr inbounds i8, ptr %0, i64 %56
  store ptr %53, ptr %57, align 8, !tbaa !5
  %58 = getelementptr inbounds i8, ptr %1, i64 24
  %59 = load ptr, ptr %58, align 8
  %60 = load ptr, ptr %0, align 8, !tbaa !5
  %61 = getelementptr i8, ptr %60, i64 -40
  %62 = load i64, ptr %61, align 8
  %63 = getelementptr inbounds i8, ptr %0, i64 %62
  store ptr %59, ptr %63, align 8, !tbaa !5
  %64 = getelementptr inbounds i8, ptr %1, i64 32
  %65 = load ptr, ptr %64, align 8
  %66 = load ptr, ptr %0, align 8, !tbaa !5
  %67 = getelementptr i8, ptr %66, i64 -48
  %68 = load i64, ptr %67, align 8
  %69 = getelementptr inbounds i8, ptr %0, i64 %68
  store ptr %65, ptr %69, align 8, !tbaa !5
  %70 = getelementptr inbounds i8, ptr %0, i64 56
  %71 = getelementptr inbounds i8, ptr %0, i64 80
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %70, i8 0, i64 16, i1 false)
  tail call void @_ZNSt6vectorIPN4Glip6CoreGL10HdlTextureESaIS3_EEC2Ev(ptr noundef nonnull align 8 dereferenceable(24) %71) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #11
  %72 = invoke noundef i32 @_ZN4Glip6CoreGL10HdlTexture16getMaxImageUnitsEv()
          to label %73 unwind label %84

73:                                               ; preds = %4
  store i32 %72, ptr %5, align 4, !tbaa !8
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #11
  %74 = invoke noundef i32 @_ZN4Glip6CoreGL6HdlFBO25getMaximumColorAttachmentEv()
          to label %75 unwind label %88

75:                                               ; preds = %73
  store i32 %74, ptr %6, align 4, !tbaa !8
  %76 = getelementptr inbounds i8, ptr %0, i64 8
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %76, i8 0, i64 48, i1 false), !tbaa !11
  %77 = getelementptr inbounds i8, ptr %0, i64 72
  store i8 1, ptr %77, align 8, !tbaa !13
  %78 = getelementptr inbounds i8, ptr %0, i64 73
  store i8 1, ptr %78, align 1, !tbaa !20
  %79 = load ptr, ptr %0, align 8, !tbaa !5
  %80 = getelementptr i8, ptr %79, i64 -32
  %81 = load i64, ptr %80, align 8
  %82 = getelementptr inbounds i8, ptr %0, i64 %81
  %83 = invoke noundef i32 @_ZNK4Glip12CorePipeline23AbstractComponentLayout15getNumInputPortEv(ptr noundef nonnull align 8 dereferenceable(88) %82)
          to label %92 unwind label %88

84:                                               ; preds = %4
  %85 = landingpad { ptr, i32 }
          cleanup
  %86 = extractvalue { ptr, i32 } %85, 0
  %87 = extractvalue { ptr, i32 } %85, 1
  br label %559

88:                                               ; preds = %472, %212, %149, %75, %73
  %89 = landingpad { ptr, i32 }
          cleanup
  %90 = extractvalue { ptr, i32 } %89, 0
  %91 = extractvalue { ptr, i32 } %89, 1
  br label %558

92:                                               ; preds = %75
  %93 = icmp sgt i32 %83, %72
  br i1 %93, label %94, label %149

94:                                               ; preds = %92
  %95 = tail call ptr @__cxa_allocate_exception(i64 152) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %10) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %12) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %13) #11
  %96 = load ptr, ptr %0, align 8, !tbaa !5
  %97 = getelementptr i8, ptr %96, i64 -24
  %98 = load i64, ptr %97, align 8
  %99 = getelementptr inbounds i8, ptr %0, i64 %98
  %100 = load ptr, ptr %99, align 8, !tbaa !5
  %101 = getelementptr inbounds i8, ptr %100, i64 16
  %102 = load ptr, ptr %101, align 8
  invoke void %102(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr noundef nonnull align 8 dereferenceable(40) %99)
          to label %103 unwind label %.thread

103:                                              ; preds = %94
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr noundef nonnull @.str.4, ptr noundef nonnull align 8 dereferenceable(32) %13)
          to label %104 unwind label %.thread164

104:                                              ; preds = %103
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.5)
          to label %105 unwind label %122

105:                                              ; preds = %104
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %14) #11
  invoke void @_ZN4Glip8toStringIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr noundef nonnull align 4 dereferenceable(4) %5)
          to label %106 unwind label %124

106:                                              ; preds = %105
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %14)
          to label %107 unwind label %126

107:                                              ; preds = %106
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull @.str.6)
          to label %108 unwind label %128

108:                                              ; preds = %107
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %15) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %16) #11
  %109 = load ptr, ptr %0, align 8, !tbaa !5
  %110 = getelementptr i8, ptr %109, i64 -32
  %111 = load i64, ptr %110, align 8
  %112 = getelementptr inbounds i8, ptr %0, i64 %111
  %113 = invoke noundef i32 @_ZNK4Glip12CorePipeline23AbstractComponentLayout15getNumInputPortEv(ptr noundef nonnull align 8 dereferenceable(88) %112)
          to label %114 unwind label %130

114:                                              ; preds = %108
  store i32 %113, ptr %16, align 4, !tbaa !8
  invoke void @_ZN4Glip8toStringIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr noundef nonnull align 4 dereferenceable(4) %16)
          to label %115 unwind label %130

115:                                              ; preds = %114
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %15)
          to label %116 unwind label %132

116:                                              ; preds = %115
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull @.str.7)
          to label %117 unwind label %134

117:                                              ; preds = %116
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %18) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %18)
          to label %118 unwind label %136

118:                                              ; preds = %117
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %19) #11
  store i32 1, ptr %19, align 4, !tbaa !21
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %95, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull %17, i32 noundef 415, ptr noundef nonnull align 4 dereferenceable(4) %19)
          to label %119 unwind label %138

119:                                              ; preds = %118
  invoke void @__cxa_throw(ptr nonnull %95, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #12
          to label %565 unwind label %138

.thread:                                          ; preds = %94
  %120 = landingpad { ptr, i32 }
          cleanup
  %.9160 = extractvalue { ptr, i32 } %120, 0
  %.959161 = extractvalue { ptr, i32 } %120, 1
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #11
  br label %148

.thread164:                                       ; preds = %103
  %121 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #11
  %.9167 = extractvalue { ptr, i32 } %121, 0
  %.959168 = extractvalue { ptr, i32 } %121, 1
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #11
  br label %148

122:                                              ; preds = %104
  %123 = landingpad { ptr, i32 }
          cleanup
  br label %147

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

126:                                              ; preds = %106
  %127 = landingpad { ptr, i32 }
          cleanup
  br label %145

128:                                              ; preds = %107
  %129 = landingpad { ptr, i32 }
          cleanup
  br label %144

130:                                              ; preds = %114, %108
  %131 = landingpad { ptr, i32 }
          cleanup
  br label %143

132:                                              ; preds = %115
  %133 = landingpad { ptr, i32 }
          cleanup
  br label %142

134:                                              ; preds = %116
  %135 = landingpad { ptr, i32 }
          cleanup
  br label %141

136:                                              ; preds = %117
  %137 = landingpad { ptr, i32 }
          cleanup
  br label %140

138:                                              ; preds = %119, %118
  %.099 = phi i1 [ false, %119 ], [ true, %118 ]
  %139 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %19) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #11
  br label %140

140:                                              ; preds = %138, %136
  %.1100 = phi i1 [ %.099, %138 ], [ true, %136 ]
  %.pn147 = phi { ptr, i32 } [ %139, %138 ], [ %137, %136 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %18) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #11
  br label %141

141:                                              ; preds = %140, %134
  %.2101 = phi i1 [ %.1100, %140 ], [ true, %134 ]
  %.pn147.pn = phi { ptr, i32 } [ %.pn147, %140 ], [ %135, %134 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #11
  br label %142

142:                                              ; preds = %141, %132
  %.3102 = phi i1 [ %.2101, %141 ], [ true, %132 ]
  %.pn147.pn.pn = phi { ptr, i32 } [ %.pn147.pn, %141 ], [ %133, %132 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #11
  br label %143

143:                                              ; preds = %142, %130
  %.4103 = phi i1 [ %.3102, %142 ], [ true, %130 ]
  %.pn147.pn.pn.pn = phi { ptr, i32 } [ %.pn147.pn.pn, %142 ], [ %131, %130 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %16) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %15) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #11
  br label %144

144:                                              ; preds = %143, %128
  %.5104 = phi i1 [ %.4103, %143 ], [ true, %128 ]
  %.pn147.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn147.pn.pn.pn, %143 ], [ %129, %128 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %10) #11
  br label %145

145:                                              ; preds = %144, %126
  %.6105 = phi i1 [ %.5104, %144 ], [ true, %126 ]
  %.pn147.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn147.pn.pn.pn.pn, %144 ], [ %127, %126 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #11
  br label %146

146:                                              ; preds = %145, %124
  %.7106 = phi i1 [ %.6105, %145 ], [ true, %124 ]
  %.pn147.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn147.pn.pn.pn.pn.pn, %145 ], [ %125, %124 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %14) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #11
  br label %147

147:                                              ; preds = %122, %146
  %.8107 = phi i1 [ %.7106, %146 ], [ true, %122 ]
  %.pn147.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn147.pn.pn.pn.pn.pn.pn, %146 ], [ %123, %122 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %13) #11
  %.9 = extractvalue { ptr, i32 } %.pn147.pn.pn.pn.pn.pn.pn.pn, 0
  %.959 = extractvalue { ptr, i32 } %.pn147.pn.pn.pn.pn.pn.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %12) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #11
  br i1 %.8107, label %148, label %558

148:                                              ; preds = %.thread164, %.thread, %147
  %.959163 = phi i32 [ %.959161, %.thread ], [ %.959, %147 ], [ %.959168, %.thread164 ]
  %.9162 = phi ptr [ %.9160, %.thread ], [ %.9, %147 ], [ %.9167, %.thread164 ]
  call void @__cxa_free_exception(ptr %95) #11
  br label %558

149:                                              ; preds = %92
  %150 = load ptr, ptr %0, align 8, !tbaa !5
  %151 = getelementptr i8, ptr %150, i64 -32
  %152 = load i64, ptr %151, align 8
  %153 = getelementptr inbounds i8, ptr %0, i64 %152
  %154 = invoke noundef i32 @_ZNK4Glip12CorePipeline23AbstractComponentLayout16getNumOutputPortEv(ptr noundef nonnull align 8 dereferenceable(88) %153)
          to label %155 unwind label %88

155:                                              ; preds = %149
  %156 = icmp sgt i32 %154, %74
  br i1 %156, label %157, label %212

157:                                              ; preds = %155
  %158 = tail call ptr @__cxa_allocate_exception(i64 152) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %20) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %21) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %22) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %24) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %25) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %26) #11
  %159 = load ptr, ptr %0, align 8, !tbaa !5
  %160 = getelementptr i8, ptr %159, i64 -24
  %161 = load i64, ptr %160, align 8
  %162 = getelementptr inbounds i8, ptr %0, i64 %161
  %163 = load ptr, ptr %162, align 8, !tbaa !5
  %164 = getelementptr inbounds i8, ptr %163, i64 16
  %165 = load ptr, ptr %164, align 8
  invoke void %165(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr noundef nonnull align 8 dereferenceable(40) %162)
          to label %166 unwind label %.thread169

166:                                              ; preds = %157
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr noundef nonnull @.str.4, ptr noundef nonnull align 8 dereferenceable(32) %26)
          to label %167 unwind label %.thread176

167:                                              ; preds = %166
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef nonnull @.str.8)
          to label %168 unwind label %185

168:                                              ; preds = %167
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %27) #11
  invoke void @_ZN4Glip8toStringIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr noundef nonnull align 4 dereferenceable(4) %6)
          to label %169 unwind label %187

169:                                              ; preds = %168
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr noundef nonnull align 8 dereferenceable(32) %24, ptr noundef nonnull align 8 dereferenceable(32) %27)
          to label %170 unwind label %189

170:                                              ; preds = %169
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr noundef nonnull align 8 dereferenceable(32) %23, ptr noundef nonnull @.str.6)
          to label %171 unwind label %191

171:                                              ; preds = %170
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %29) #11
  %172 = load ptr, ptr %0, align 8, !tbaa !5
  %173 = getelementptr i8, ptr %172, i64 -32
  %174 = load i64, ptr %173, align 8
  %175 = getelementptr inbounds i8, ptr %0, i64 %174
  %176 = invoke noundef i32 @_ZNK4Glip12CorePipeline23AbstractComponentLayout15getNumInputPortEv(ptr noundef nonnull align 8 dereferenceable(88) %175)
          to label %177 unwind label %193

177:                                              ; preds = %171
  store i32 %176, ptr %29, align 4, !tbaa !8
  invoke void @_ZN4Glip8toStringIiEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKT_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %28, ptr noundef nonnull align 4 dereferenceable(4) %29)
          to label %178 unwind label %193

178:                                              ; preds = %177
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S9_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr noundef nonnull align 8 dereferenceable(32) %22, ptr noundef nonnull align 8 dereferenceable(32) %28)
          to label %179 unwind label %195

179:                                              ; preds = %178
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_PKS5_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull @.str.7)
          to label %180 unwind label %197

180:                                              ; preds = %179
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %31) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %30, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %31)
          to label %181 unwind label %199

181:                                              ; preds = %180
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %32) #11
  store i32 1, ptr %32, align 4, !tbaa !21
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %158, ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull %30, i32 noundef 418, ptr noundef nonnull align 4 dereferenceable(4) %32)
          to label %182 unwind label %201

182:                                              ; preds = %181
  invoke void @__cxa_throw(ptr nonnull %158, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #12
          to label %565 unwind label %201

.thread169:                                       ; preds = %157
  %183 = landingpad { ptr, i32 }
          cleanup
  %.19172 = extractvalue { ptr, i32 } %183, 0
  %.1969173 = extractvalue { ptr, i32 } %183, 1
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #11
  br label %211

.thread176:                                       ; preds = %166
  %184 = landingpad { ptr, i32 }
          cleanup
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #11
  %.19179 = extractvalue { ptr, i32 } %184, 0
  %.1969180 = extractvalue { ptr, i32 } %184, 1
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #11
  br label %211

185:                                              ; preds = %167
  %186 = landingpad { ptr, i32 }
          cleanup
  br label %210

187:                                              ; preds = %168
  %188 = landingpad { ptr, i32 }
          cleanup
  br label %209

189:                                              ; preds = %169
  %190 = landingpad { ptr, i32 }
          cleanup
  br label %208

191:                                              ; preds = %170
  %192 = landingpad { ptr, i32 }
          cleanup
  br label %207

193:                                              ; preds = %177, %171
  %194 = landingpad { ptr, i32 }
          cleanup
  br label %206

195:                                              ; preds = %178
  %196 = landingpad { ptr, i32 }
          cleanup
  br label %205

197:                                              ; preds = %179
  %198 = landingpad { ptr, i32 }
          cleanup
  br label %204

199:                                              ; preds = %180
  %200 = landingpad { ptr, i32 }
          cleanup
  br label %203

201:                                              ; preds = %182, %181
  %.088 = phi i1 [ false, %182 ], [ true, %181 ]
  %202 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %32) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %30) #11
  br label %203

203:                                              ; preds = %201, %199
  %.189 = phi i1 [ %.088, %201 ], [ true, %199 ]
  %.pn136 = phi { ptr, i32 } [ %202, %201 ], [ %200, %199 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %31) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %31) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #11
  br label %204

204:                                              ; preds = %203, %197
  %.290 = phi i1 [ %.189, %203 ], [ true, %197 ]
  %.pn136.pn = phi { ptr, i32 } [ %.pn136, %203 ], [ %198, %197 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #11
  br label %205

205:                                              ; preds = %204, %195
  %.391 = phi i1 [ %.290, %204 ], [ true, %195 ]
  %.pn136.pn.pn = phi { ptr, i32 } [ %.pn136.pn, %204 ], [ %196, %195 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %28) #11
  br label %206

206:                                              ; preds = %205, %193
  %.492 = phi i1 [ %.391, %205 ], [ true, %193 ]
  %.pn136.pn.pn.pn = phi { ptr, i32 } [ %.pn136.pn.pn, %205 ], [ %194, %193 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %29) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #11
  br label %207

207:                                              ; preds = %206, %191
  %.593 = phi i1 [ %.492, %206 ], [ true, %191 ]
  %.pn136.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn136.pn.pn.pn, %206 ], [ %192, %191 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %23) #11
  br label %208

208:                                              ; preds = %207, %189
  %.694 = phi i1 [ %.593, %207 ], [ true, %189 ]
  %.pn136.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn136.pn.pn.pn.pn, %207 ], [ %190, %189 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %27) #11
  br label %209

209:                                              ; preds = %208, %187
  %.795 = phi i1 [ %.694, %208 ], [ true, %187 ]
  %.pn136.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn136.pn.pn.pn.pn.pn, %208 ], [ %188, %187 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %27) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %24) #11
  br label %210

210:                                              ; preds = %185, %209
  %.896 = phi i1 [ %.795, %209 ], [ true, %185 ]
  %.pn136.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn136.pn.pn.pn.pn.pn.pn, %209 ], [ %186, %185 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %26) #11
  %.19 = extractvalue { ptr, i32 } %.pn136.pn.pn.pn.pn.pn.pn.pn, 0
  %.1969 = extractvalue { ptr, i32 } %.pn136.pn.pn.pn.pn.pn.pn.pn, 1
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %26) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %25) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %24) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %23) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %22) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %21) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %20) #11
  br i1 %.896, label %211, label %558

211:                                              ; preds = %.thread176, %.thread169, %210
  %.1969175 = phi i32 [ %.1969173, %.thread169 ], [ %.1969, %210 ], [ %.1969180, %.thread176 ]
  %.19174 = phi ptr [ %.19172, %.thread169 ], [ %.19, %210 ], [ %.19179, %.thread176 ]
  call void @__cxa_free_exception(ptr %158) #11
  br label %558

212:                                              ; preds = %155
  %213 = load ptr, ptr %0, align 8, !tbaa !5
  %214 = getelementptr i8, ptr %213, i64 -32
  %215 = load i64, ptr %214, align 8
  %216 = getelementptr inbounds i8, ptr %0, i64 %215
  %217 = invoke noundef i32 @_ZNK4Glip12CorePipeline23AbstractComponentLayout15getNumInputPortEv(ptr noundef nonnull align 8 dereferenceable(88) %216)
          to label %218 unwind label %88

218:                                              ; preds = %212
  %219 = sext i32 %217 to i64
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %33) #11
  store ptr null, ptr %33, align 8, !tbaa !11
  invoke void @_ZNSt6vectorIPN4Glip6CoreGL10HdlTextureESaIS3_EE6assignEmRKS3_(ptr noundef nonnull align 8 dereferenceable(24) %71, i64 noundef %219, ptr noundef nonnull align 8 dereferenceable(8) %33)
          to label %220 unwind label %230

220:                                              ; preds = %218
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #11
  %221 = invoke noalias noundef nonnull dereferenceable(88) ptr @_Znwm(i64 noundef 88) #13
          to label %222 unwind label %234

222:                                              ; preds = %220
  invoke void @_ZN4Glip6CoreGL10HdlProgramC1Ev(ptr noundef nonnull align 8 dereferenceable(88) %221)
          to label %223 unwind label %236

223:                                              ; preds = %222
  store ptr %221, ptr %70, align 8, !tbaa !23
  %224 = load ptr, ptr %0, align 8, !tbaa !5
  %225 = getelementptr i8, ptr %224, i64 -40
  %226 = load i64, ptr %225, align 8
  %227 = getelementptr inbounds i8, ptr %0, i64 %226
  %228 = load i32, ptr @__const.Filter.listShaderTypeEnum, align 16, !tbaa !8
  %229 = invoke noundef ptr @_ZNK4Glip12CorePipeline20AbstractFilterLayout15getShaderSourceEj(ptr noundef nonnull align 8 dereferenceable(84) %227, i32 noundef %228)
          to label %238 unwind label %244

230:                                              ; preds = %218
  %231 = landingpad { ptr, i32 }
          cleanup
  %232 = extractvalue { ptr, i32 } %231, 0
  %233 = extractvalue { ptr, i32 } %231, 1
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %33) #11
  br label %558

234:                                              ; preds = %220
  %235 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4Glip9ExceptionE
  br label %322

236:                                              ; preds = %222
  %237 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4Glip9ExceptionE
  call void @_ZdlPvm(ptr noundef nonnull %221, i64 noundef 88) #14
  br label %322

238:                                              ; preds = %223
  %.not = icmp eq ptr %229, null
  br i1 %.not, label %248, label %239

239:                                              ; preds = %238
  %240 = invoke noalias noundef nonnull dereferenceable(280) ptr @_Znwm(i64 noundef 280) #13
          to label %241 unwind label %244

241:                                              ; preds = %239
  invoke void @_ZN4Glip6CoreGL9HdlShaderC1EjRKNS0_12ShaderSourceE(ptr noundef nonnull align 8 dereferenceable(280) %240, i32 noundef %228, ptr noundef nonnull align 8 dereferenceable(272) %229)
          to label %242 unwind label %246

242:                                              ; preds = %241
  store ptr %240, ptr %76, align 8, !tbaa !11
  %243 = load ptr, ptr %70, align 8, !tbaa !23
  invoke void @_ZN4Glip6CoreGL10HdlProgram12updateShaderERKNS0_9HdlShaderEb(ptr noundef nonnull align 8 dereferenceable(88) %243, ptr noundef nonnull align 8 dereferenceable(280) %240, i1 noundef zeroext false)
          to label %248 unwind label %244

244:                                              ; preds = %315, %312, %304, %301, %298, %290, %287, %284, %276, %273, %270, %262, %259, %256, %248, %242, %239, %223
  %245 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4Glip9ExceptionE
  br label %322

246:                                              ; preds = %314, %300, %286, %272, %258, %241
  %.lcssa189 = phi ptr [ %240, %241 ], [ %257, %258 ], [ %271, %272 ], [ %285, %286 ], [ %299, %300 ], [ %313, %314 ]
  %247 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4Glip9ExceptionE
  call void @_ZdlPvm(ptr noundef nonnull %.lcssa189, i64 noundef 280) #14
  br label %322

248:                                              ; preds = %242, %238
  %249 = load ptr, ptr %0, align 8, !tbaa !5
  %250 = getelementptr i8, ptr %249, i64 -40
  %251 = load i64, ptr %250, align 8
  %252 = getelementptr inbounds i8, ptr %0, i64 %251
  %253 = load i32, ptr getelementptr inbounds (i8, ptr @__const.Filter.listShaderTypeEnum, i64 4), align 4, !tbaa !8
  %254 = invoke noundef ptr @_ZNK4Glip12CorePipeline20AbstractFilterLayout15getShaderSourceEj(ptr noundef nonnull align 8 dereferenceable(84) %252, i32 noundef %253)
          to label %255 unwind label %244

255:                                              ; preds = %248
  %.not.1 = icmp eq ptr %254, null
  br i1 %.not.1, label %262, label %256

256:                                              ; preds = %255
  %257 = invoke noalias noundef nonnull dereferenceable(280) ptr @_Znwm(i64 noundef 280) #13
          to label %258 unwind label %244

258:                                              ; preds = %256
  invoke void @_ZN4Glip6CoreGL9HdlShaderC1EjRKNS0_12ShaderSourceE(ptr noundef nonnull align 8 dereferenceable(280) %257, i32 noundef %253, ptr noundef nonnull align 8 dereferenceable(272) %254)
          to label %259 unwind label %246

259:                                              ; preds = %258
  %260 = getelementptr inbounds i8, ptr %0, i64 16
  store ptr %257, ptr %260, align 8, !tbaa !11
  %261 = load ptr, ptr %70, align 8, !tbaa !23
  invoke void @_ZN4Glip6CoreGL10HdlProgram12updateShaderERKNS0_9HdlShaderEb(ptr noundef nonnull align 8 dereferenceable(88) %261, ptr noundef nonnull align 8 dereferenceable(280) %257, i1 noundef zeroext false)
          to label %262 unwind label %244

262:                                              ; preds = %259, %255
  %263 = load ptr, ptr %0, align 8, !tbaa !5
  %264 = getelementptr i8, ptr %263, i64 -40
  %265 = load i64, ptr %264, align 8
  %266 = getelementptr inbounds i8, ptr %0, i64 %265
  %267 = load i32, ptr getelementptr inbounds (i8, ptr @__const.Filter.listShaderTypeEnum, i64 8), align 8, !tbaa !8
  %268 = invoke noundef ptr @_ZNK4Glip12CorePipeline20AbstractFilterLayout15getShaderSourceEj(ptr noundef nonnull align 8 dereferenceable(84) %266, i32 noundef %267)
          to label %269 unwind label %244

269:                                              ; preds = %262
  %.not.2 = icmp eq ptr %268, null
  br i1 %.not.2, label %276, label %270

270:                                              ; preds = %269
  %271 = invoke noalias noundef nonnull dereferenceable(280) ptr @_Znwm(i64 noundef 280) #13
          to label %272 unwind label %244

272:                                              ; preds = %270
  invoke void @_ZN4Glip6CoreGL9HdlShaderC1EjRKNS0_12ShaderSourceE(ptr noundef nonnull align 8 dereferenceable(280) %271, i32 noundef %267, ptr noundef nonnull align 8 dereferenceable(272) %268)
          to label %273 unwind label %246

273:                                              ; preds = %272
  %274 = getelementptr inbounds i8, ptr %0, i64 24
  store ptr %271, ptr %274, align 8, !tbaa !11
  %275 = load ptr, ptr %70, align 8, !tbaa !23
  invoke void @_ZN4Glip6CoreGL10HdlProgram12updateShaderERKNS0_9HdlShaderEb(ptr noundef nonnull align 8 dereferenceable(88) %275, ptr noundef nonnull align 8 dereferenceable(280) %271, i1 noundef zeroext false)
          to label %276 unwind label %244

276:                                              ; preds = %273, %269
  %277 = load ptr, ptr %0, align 8, !tbaa !5
  %278 = getelementptr i8, ptr %277, i64 -40
  %279 = load i64, ptr %278, align 8
  %280 = getelementptr inbounds i8, ptr %0, i64 %279
  %281 = load i32, ptr getelementptr inbounds (i8, ptr @__const.Filter.listShaderTypeEnum, i64 12), align 4, !tbaa !8
  %282 = invoke noundef ptr @_ZNK4Glip12CorePipeline20AbstractFilterLayout15getShaderSourceEj(ptr noundef nonnull align 8 dereferenceable(84) %280, i32 noundef %281)
          to label %283 unwind label %244

283:                                              ; preds = %276
  %.not.3 = icmp eq ptr %282, null
  br i1 %.not.3, label %290, label %284

284:                                              ; preds = %283
  %285 = invoke noalias noundef nonnull dereferenceable(280) ptr @_Znwm(i64 noundef 280) #13
          to label %286 unwind label %244

286:                                              ; preds = %284
  invoke void @_ZN4Glip6CoreGL9HdlShaderC1EjRKNS0_12ShaderSourceE(ptr noundef nonnull align 8 dereferenceable(280) %285, i32 noundef %281, ptr noundef nonnull align 8 dereferenceable(272) %282)
          to label %287 unwind label %246

287:                                              ; preds = %286
  %288 = getelementptr inbounds i8, ptr %0, i64 32
  store ptr %285, ptr %288, align 8, !tbaa !11
  %289 = load ptr, ptr %70, align 8, !tbaa !23
  invoke void @_ZN4Glip6CoreGL10HdlProgram12updateShaderERKNS0_9HdlShaderEb(ptr noundef nonnull align 8 dereferenceable(88) %289, ptr noundef nonnull align 8 dereferenceable(280) %285, i1 noundef zeroext false)
          to label %290 unwind label %244

290:                                              ; preds = %287, %283
  %291 = load ptr, ptr %0, align 8, !tbaa !5
  %292 = getelementptr i8, ptr %291, i64 -40
  %293 = load i64, ptr %292, align 8
  %294 = getelementptr inbounds i8, ptr %0, i64 %293
  %295 = load i32, ptr getelementptr inbounds (i8, ptr @__const.Filter.listShaderTypeEnum, i64 16), align 16, !tbaa !8
  %296 = invoke noundef ptr @_ZNK4Glip12CorePipeline20AbstractFilterLayout15getShaderSourceEj(ptr noundef nonnull align 8 dereferenceable(84) %294, i32 noundef %295)
          to label %297 unwind label %244

297:                                              ; preds = %290
  %.not.4 = icmp eq ptr %296, null
  br i1 %.not.4, label %304, label %298

298:                                              ; preds = %297
  %299 = invoke noalias noundef nonnull dereferenceable(280) ptr @_Znwm(i64 noundef 280) #13
          to label %300 unwind label %244

300:                                              ; preds = %298
  invoke void @_ZN4Glip6CoreGL9HdlShaderC1EjRKNS0_12ShaderSourceE(ptr noundef nonnull align 8 dereferenceable(280) %299, i32 noundef %295, ptr noundef nonnull align 8 dereferenceable(272) %296)
          to label %301 unwind label %246

301:                                              ; preds = %300
  %302 = getelementptr inbounds i8, ptr %0, i64 40
  store ptr %299, ptr %302, align 8, !tbaa !11
  %303 = load ptr, ptr %70, align 8, !tbaa !23
  invoke void @_ZN4Glip6CoreGL10HdlProgram12updateShaderERKNS0_9HdlShaderEb(ptr noundef nonnull align 8 dereferenceable(88) %303, ptr noundef nonnull align 8 dereferenceable(280) %299, i1 noundef zeroext false)
          to label %304 unwind label %244

304:                                              ; preds = %301, %297
  %305 = load ptr, ptr %0, align 8, !tbaa !5
  %306 = getelementptr i8, ptr %305, i64 -40
  %307 = load i64, ptr %306, align 8
  %308 = getelementptr inbounds i8, ptr %0, i64 %307
  %309 = load i32, ptr getelementptr inbounds (i8, ptr @__const.Filter.listShaderTypeEnum, i64 20), align 4, !tbaa !8
  %310 = invoke noundef ptr @_ZNK4Glip12CorePipeline20AbstractFilterLayout15getShaderSourceEj(ptr noundef nonnull align 8 dereferenceable(84) %308, i32 noundef %309)
          to label %311 unwind label %244

311:                                              ; preds = %304
  %.not.5 = icmp eq ptr %310, null
  br i1 %.not.5, label %318, label %312

312:                                              ; preds = %311
  %313 = invoke noalias noundef nonnull dereferenceable(280) ptr @_Znwm(i64 noundef 280) #13
          to label %314 unwind label %244

314:                                              ; preds = %312
  invoke void @_ZN4Glip6CoreGL9HdlShaderC1EjRKNS0_12ShaderSourceE(ptr noundef nonnull align 8 dereferenceable(280) %313, i32 noundef %309, ptr noundef nonnull align 8 dereferenceable(272) %310)
          to label %315 unwind label %246

315:                                              ; preds = %314
  %316 = getelementptr inbounds i8, ptr %0, i64 48
  store ptr %313, ptr %316, align 8, !tbaa !11
  %317 = load ptr, ptr %70, align 8, !tbaa !23
  invoke void @_ZN4Glip6CoreGL10HdlProgram12updateShaderERKNS0_9HdlShaderEb(ptr noundef nonnull align 8 dereferenceable(88) %317, ptr noundef nonnull align 8 dereferenceable(280) %313, i1 noundef zeroext false)
          to label %318 unwind label %244

318:                                              ; preds = %315, %311
  %319 = load ptr, ptr %70, align 8, !tbaa !23
  invoke void @_ZN4Glip6CoreGL10HdlProgram4linkEv(ptr noundef nonnull align 8 dereferenceable(88) %319)
          to label %.preheader181 unwind label %320

320:                                              ; preds = %318
  %321 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4Glip9ExceptionE
  br label %322

322:                                              ; preds = %320, %246, %244, %236, %234
  %.pn125.pn.pn = phi { ptr, i32 } [ %237, %236 ], [ %235, %234 ], [ %321, %320 ], [ %245, %244 ], [ %247, %246 ]
  %.22 = extractvalue { ptr, i32 } %.pn125.pn.pn, 0
  %.2272 = extractvalue { ptr, i32 } %.pn125.pn.pn, 1
  %323 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN4Glip9ExceptionE) #11
  %324 = icmp eq i32 %.2272, %323
  br i1 %324, label %325, label %558

325:                                              ; preds = %322
  %326 = call ptr @__cxa_begin_catch(ptr %.22) #11
  %327 = load ptr, ptr %76, align 8, !tbaa !11
  %328 = icmp eq ptr %327, null
  br i1 %328, label %330, label %329

329:                                              ; preds = %325
  call void @_ZN4Glip6CoreGL9HdlShaderD1Ev(ptr noundef nonnull align 8 dereferenceable(280) %327) #11
  call void @_ZdlPvm(ptr noundef nonnull %327, i64 noundef 280) #14
  br label %330

330:                                              ; preds = %329, %325
  store ptr null, ptr %76, align 8, !tbaa !11
  %331 = getelementptr inbounds i8, ptr %0, i64 16
  %332 = load ptr, ptr %331, align 8, !tbaa !11
  %333 = icmp eq ptr %332, null
  br i1 %333, label %335, label %334

334:                                              ; preds = %330
  call void @_ZN4Glip6CoreGL9HdlShaderD1Ev(ptr noundef nonnull align 8 dereferenceable(280) %332) #11
  call void @_ZdlPvm(ptr noundef nonnull %332, i64 noundef 280) #14
  br label %335

335:                                              ; preds = %334, %330
  store ptr null, ptr %331, align 8, !tbaa !11
  %336 = getelementptr inbounds i8, ptr %0, i64 24
  %337 = load ptr, ptr %336, align 8, !tbaa !11
  %338 = icmp eq ptr %337, null
  br i1 %338, label %340, label %339

339:                                              ; preds = %335
  call void @_ZN4Glip6CoreGL9HdlShaderD1Ev(ptr noundef nonnull align 8 dereferenceable(280) %337) #11
  call void @_ZdlPvm(ptr noundef nonnull %337, i64 noundef 280) #14
  br label %340

340:                                              ; preds = %339, %335
  store ptr null, ptr %336, align 8, !tbaa !11
  %341 = getelementptr inbounds i8, ptr %0, i64 32
  %342 = load ptr, ptr %341, align 8, !tbaa !11
  %343 = icmp eq ptr %342, null
  br i1 %343, label %345, label %344

344:                                              ; preds = %340
  call void @_ZN4Glip6CoreGL9HdlShaderD1Ev(ptr noundef nonnull align 8 dereferenceable(280) %342) #11
  call void @_ZdlPvm(ptr noundef nonnull %342, i64 noundef 280) #14
  br label %345

345:                                              ; preds = %344, %340
  store ptr null, ptr %341, align 8, !tbaa !11
  %346 = getelementptr inbounds i8, ptr %0, i64 40
  %347 = load ptr, ptr %346, align 8, !tbaa !11
  %348 = icmp eq ptr %347, null
  br i1 %348, label %350, label %349

349:                                              ; preds = %345
  call void @_ZN4Glip6CoreGL9HdlShaderD1Ev(ptr noundef nonnull align 8 dereferenceable(280) %347) #11
  call void @_ZdlPvm(ptr noundef nonnull %347, i64 noundef 280) #14
  br label %350

350:                                              ; preds = %349, %345
  store ptr null, ptr %346, align 8, !tbaa !11
  %351 = getelementptr inbounds i8, ptr %0, i64 48
  %352 = load ptr, ptr %351, align 8, !tbaa !11
  %353 = icmp eq ptr %352, null
  br i1 %353, label %355, label %354

354:                                              ; preds = %350
  call void @_ZN4Glip6CoreGL9HdlShaderD1Ev(ptr noundef nonnull align 8 dereferenceable(280) %352) #11
  call void @_ZdlPvm(ptr noundef nonnull %352, i64 noundef 280) #14
  br label %355

355:                                              ; preds = %354, %350
  store ptr null, ptr %351, align 8, !tbaa !11
  %356 = load ptr, ptr %70, align 8, !tbaa !23
  %357 = icmp eq ptr %356, null
  br i1 %357, label %359, label %358

358:                                              ; preds = %355
  call void @_ZN4Glip6CoreGL10HdlProgramD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %356) #11
  call void @_ZdlPvm(ptr noundef nonnull %356, i64 noundef 88) #14
  br label %359

359:                                              ; preds = %358, %355
  store ptr null, ptr %70, align 8, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 152, ptr nonnull %34) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %35) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %36) #11
  %360 = load ptr, ptr %0, align 8, !tbaa !5
  %361 = getelementptr i8, ptr %360, i64 -24
  %362 = load i64, ptr %361, align 8
  %363 = getelementptr inbounds i8, ptr %0, i64 %362
  %364 = load ptr, ptr %363, align 8, !tbaa !5
  %365 = getelementptr inbounds i8, ptr %364, i64 16
  %366 = load ptr, ptr %365, align 8
  invoke void %366(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %36, ptr noundef nonnull align 8 dereferenceable(40) %363)
          to label %367 unwind label %375

367:                                              ; preds = %359
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr noundef nonnull @.str.9, ptr noundef nonnull align 8 dereferenceable(32) %36)
          to label %368 unwind label %377

368:                                              ; preds = %367
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %38) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %37, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %38)
          to label %369 unwind label %379

369:                                              ; preds = %368
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %39) #11
  store i32 1, ptr %39, align 4, !tbaa !21
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %34, ptr noundef nonnull align 8 dereferenceable(32) %35, ptr noundef nonnull %37, i32 noundef 455, ptr noundef nonnull align 4 dereferenceable(4) %39)
          to label %370 unwind label %381

370:                                              ; preds = %369
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #11
  %371 = invoke noundef nonnull align 8 dereferenceable(152) ptr @_ZN4Glip9ExceptionlsERKS0_(ptr noundef nonnull align 8 dereferenceable(152) %34, ptr noundef nonnull align 8 dereferenceable(152) %326)
          to label %372 unwind label %386

372:                                              ; preds = %370
  %373 = call ptr @__cxa_allocate_exception(i64 152) #11
  invoke void @_ZN4Glip9ExceptionC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(152) %373, ptr noundef nonnull align 8 dereferenceable(152) %34)
          to label %374 unwind label %388

374:                                              ; preds = %372
  invoke void @__cxa_throw(ptr nonnull %373, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #12
          to label %565 unwind label %386

375:                                              ; preds = %359
  %376 = landingpad { ptr, i32 }
          cleanup
  br label %385

377:                                              ; preds = %367
  %378 = landingpad { ptr, i32 }
          cleanup
  br label %384

379:                                              ; preds = %368
  %380 = landingpad { ptr, i32 }
          cleanup
  br label %383

381:                                              ; preds = %369
  %382 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %39) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %37) #11
  br label %383

383:                                              ; preds = %381, %379
  %.pn129 = phi { ptr, i32 } [ %382, %381 ], [ %380, %379 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %38) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %38) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %35) #11
  br label %384

384:                                              ; preds = %383, %377
  %.pn129.pn = phi { ptr, i32 } [ %.pn129, %383 ], [ %378, %377 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %36) #11
  br label %385

385:                                              ; preds = %384, %375
  %.pn129.pn.pn = phi { ptr, i32 } [ %.pn129.pn, %384 ], [ %376, %375 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %36) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %35) #11
  br label %391

386:                                              ; preds = %374, %370
  %387 = landingpad { ptr, i32 }
          cleanup
  br label %390

388:                                              ; preds = %372
  %389 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %373) #11
  br label %390

390:                                              ; preds = %388, %386
  %.pn133 = phi { ptr, i32 } [ %387, %386 ], [ %389, %388 ]
  call void @_ZN4Glip9ExceptionD1Ev(ptr noundef nonnull align 8 dereferenceable(152) %34) #11
  br label %391

391:                                              ; preds = %390, %385
  %.pn133.pn = phi { ptr, i32 } [ %.pn133, %390 ], [ %.pn129.pn.pn, %385 ]
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %34) #11
  invoke void @__cxa_end_catch()
          to label %392 unwind label %562

392:                                              ; preds = %391
  %.27 = extractvalue { ptr, i32 } %.pn133.pn, 0
  %.2777 = extractvalue { ptr, i32 } %.pn133.pn, 1
  br label %558

.preheader181:                                    ; preds = %318
  %393 = load ptr, ptr %76, align 8, !tbaa !11
  %394 = icmp eq ptr %393, null
  br i1 %394, label %.thread194, label %395

395:                                              ; preds = %.preheader181
  %396 = invoke noundef zeroext i1 @_ZNK4Glip6CoreGL12ShaderSource21requiresCompatibilityEv(ptr noundef nonnull align 8 dereferenceable(272) %393)
          to label %397 unwind label %428

397:                                              ; preds = %395
  br i1 %396, label %.thread194, label %.preheader.preheader

.thread194:                                       ; preds = %.preheader181, %397
  %398 = getelementptr inbounds i8, ptr %0, i64 16
  %399 = load ptr, ptr %398, align 8, !tbaa !11
  %400 = icmp eq ptr %399, null
  br i1 %400, label %.thread195, label %401

401:                                              ; preds = %.thread194
  %402 = invoke noundef zeroext i1 @_ZNK4Glip6CoreGL12ShaderSource21requiresCompatibilityEv(ptr noundef nonnull align 8 dereferenceable(272) %399)
          to label %403 unwind label %428

403:                                              ; preds = %401
  br i1 %402, label %.thread195, label %.preheader.preheader

.thread195:                                       ; preds = %.thread194, %403
  %404 = getelementptr inbounds i8, ptr %0, i64 24
  %405 = load ptr, ptr %404, align 8, !tbaa !11
  %406 = icmp eq ptr %405, null
  br i1 %406, label %.thread198, label %407

407:                                              ; preds = %.thread195
  %408 = invoke noundef zeroext i1 @_ZNK4Glip6CoreGL12ShaderSource21requiresCompatibilityEv(ptr noundef nonnull align 8 dereferenceable(272) %405)
          to label %409 unwind label %428

409:                                              ; preds = %407
  br i1 %408, label %.thread198, label %.preheader.preheader

.thread198:                                       ; preds = %.thread195, %409
  %410 = getelementptr inbounds i8, ptr %0, i64 32
  %411 = load ptr, ptr %410, align 8, !tbaa !11
  %412 = icmp eq ptr %411, null
  br i1 %412, label %.thread201, label %413

413:                                              ; preds = %.thread198
  %414 = invoke noundef zeroext i1 @_ZNK4Glip6CoreGL12ShaderSource21requiresCompatibilityEv(ptr noundef nonnull align 8 dereferenceable(272) %411)
          to label %415 unwind label %428

415:                                              ; preds = %413
  br i1 %414, label %.thread201, label %.preheader.preheader

.thread201:                                       ; preds = %.thread198, %415
  %416 = getelementptr inbounds i8, ptr %0, i64 40
  %417 = load ptr, ptr %416, align 8, !tbaa !11
  %418 = icmp eq ptr %417, null
  br i1 %418, label %.thread204, label %419

419:                                              ; preds = %.thread201
  %420 = invoke noundef zeroext i1 @_ZNK4Glip6CoreGL12ShaderSource21requiresCompatibilityEv(ptr noundef nonnull align 8 dereferenceable(272) %417)
          to label %421 unwind label %428

421:                                              ; preds = %419
  br i1 %420, label %.thread204, label %.preheader.preheader

.thread204:                                       ; preds = %.thread201, %421
  %422 = getelementptr inbounds i8, ptr %0, i64 48
  %423 = load ptr, ptr %422, align 8, !tbaa !11
  %424 = icmp eq ptr %423, null
  br i1 %424, label %.thread207.preheader, label %425

425:                                              ; preds = %.thread204
  %426 = invoke noundef zeroext i1 @_ZNK4Glip6CoreGL12ShaderSource21requiresCompatibilityEv(ptr noundef nonnull align 8 dereferenceable(272) %423)
          to label %427 unwind label %428

427:                                              ; preds = %425
  br i1 %426, label %.thread207.preheader, label %.preheader.preheader

.preheader.preheader:                             ; preds = %397, %403, %409, %415, %421, %427
  br label %.preheader

.thread207.preheader:                             ; preds = %.thread204, %438, %427
  br label %.thread207

428:                                              ; preds = %425, %419, %413, %407, %401, %395
  %429 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4Glip9ExceptionE
  br label %474

.preheader:                                       ; preds = %.preheader.preheader, %448
  %.046 = phi i32 [ %449, %448 ], [ 0, %.preheader.preheader ]
  %430 = load ptr, ptr %0, align 8, !tbaa !5
  %431 = getelementptr i8, ptr %430, i64 -32
  %432 = load i64, ptr %431, align 8
  %433 = getelementptr inbounds i8, ptr %0, i64 %432
  %434 = invoke noundef i32 @_ZNK4Glip12CorePipeline23AbstractComponentLayout16getNumOutputPortEv(ptr noundef nonnull align 8 dereferenceable(88) %433)
          to label %435 unwind label %439

435:                                              ; preds = %.preheader
  %436 = icmp slt i32 %.046, %434
  %437 = load ptr, ptr %70, align 8, !tbaa !23
  br i1 %436, label %441, label %438

438:                                              ; preds = %435
  invoke void @_ZN4Glip6CoreGL10HdlProgram4linkEv(ptr noundef nonnull align 8 dereferenceable(88) %437)
          to label %.thread207.preheader unwind label %450

439:                                              ; preds = %447, %441, %.preheader
  %440 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4Glip9ExceptionE
  br label %474

441:                                              ; preds = %435
  %442 = load ptr, ptr %0, align 8, !tbaa !5
  %443 = getelementptr i8, ptr %442, i64 -32
  %444 = load i64, ptr %443, align 8
  %445 = getelementptr inbounds i8, ptr %0, i64 %444
  %446 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK4Glip12CorePipeline23AbstractComponentLayout17getOutputPortNameB5cxx11Ei(ptr noundef nonnull align 8 dereferenceable(88) %445, i32 noundef %.046)
          to label %447 unwind label %439

447:                                              ; preds = %441
  invoke void @_ZN4Glip6CoreGL10HdlProgram19setFragmentLocationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(88) %437, ptr noundef nonnull align 8 dereferenceable(32) %446, i32 noundef %.046)
          to label %448 unwind label %439

448:                                              ; preds = %447
  %449 = add nuw nsw i32 %.046, 1
  br label %.preheader, !llvm.loop !24

450:                                              ; preds = %459, %438
  %451 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4Glip9ExceptionE
  br label %474

.thread207:                                       ; preds = %.thread207.preheader, %470
  %.045 = phi i32 [ %471, %470 ], [ 0, %.thread207.preheader ]
  %452 = load ptr, ptr %0, align 8, !tbaa !5
  %453 = getelementptr i8, ptr %452, i64 -32
  %454 = load i64, ptr %453, align 8
  %455 = getelementptr inbounds i8, ptr %0, i64 %454
  %456 = invoke noundef i32 @_ZNK4Glip12CorePipeline23AbstractComponentLayout15getNumInputPortEv(ptr noundef nonnull align 8 dereferenceable(88) %455)
          to label %457 unwind label %460

457:                                              ; preds = %.thread207
  %458 = icmp slt i32 %.045, %456
  br i1 %458, label %462, label %459

459:                                              ; preds = %457
  invoke void @_ZN4Glip6CoreGL10HdlProgram11stopProgramEv()
          to label %472 unwind label %450

460:                                              ; preds = %469, %462, %.thread207
  %461 = landingpad { ptr, i32 }
          cleanup
          catch ptr @_ZTIN4Glip9ExceptionE
  br label %474

462:                                              ; preds = %457
  %463 = load ptr, ptr %70, align 8, !tbaa !23
  %464 = load ptr, ptr %0, align 8, !tbaa !5
  %465 = getelementptr i8, ptr %464, i64 -32
  %466 = load i64, ptr %465, align 8
  %467 = getelementptr inbounds i8, ptr %0, i64 %466
  %468 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNK4Glip12CorePipeline23AbstractComponentLayout16getInputPortNameB5cxx11Ei(ptr noundef nonnull align 8 dereferenceable(88) %467, i32 noundef %.045)
          to label %469 unwind label %460

469:                                              ; preds = %462
  invoke void @_ZN4Glip6CoreGL10HdlProgram6setVarERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjiiii(ptr noundef nonnull align 8 dereferenceable(88) %463, ptr noundef nonnull align 8 dereferenceable(32) %468, i32 noundef 5124, i32 noundef %.045, i32 noundef 0, i32 noundef 0, i32 noundef 0)
          to label %470 unwind label %460

470:                                              ; preds = %469
  %471 = add nuw nsw i32 %.045, 1
  br label %.thread207, !llvm.loop !26

472:                                              ; preds = %459
  %473 = invoke noalias noundef nonnull dereferenceable(4) ptr @_Znwm(i64 noundef 4) #13
          to label %545 unwind label %88

474:                                              ; preds = %460, %450, %439, %428
  %.pn = phi { ptr, i32 } [ %429, %428 ], [ %461, %460 ], [ %451, %450 ], [ %440, %439 ]
  %.28 = extractvalue { ptr, i32 } %.pn, 0
  %.2878 = extractvalue { ptr, i32 } %.pn, 1
  %475 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN4Glip9ExceptionE) #11
  %476 = icmp eq i32 %.2878, %475
  br i1 %476, label %477, label %558

477:                                              ; preds = %474
  %478 = call ptr @__cxa_begin_catch(ptr %.28) #11
  %479 = load ptr, ptr %76, align 8, !tbaa !11
  %480 = icmp eq ptr %479, null
  br i1 %480, label %482, label %481

481:                                              ; preds = %477
  call void @_ZN4Glip6CoreGL9HdlShaderD1Ev(ptr noundef nonnull align 8 dereferenceable(280) %479) #11
  call void @_ZdlPvm(ptr noundef nonnull %479, i64 noundef 280) #14
  br label %482

482:                                              ; preds = %481, %477
  store ptr null, ptr %76, align 8, !tbaa !11
  %483 = getelementptr inbounds i8, ptr %0, i64 16
  %484 = load ptr, ptr %483, align 8, !tbaa !11
  %485 = icmp eq ptr %484, null
  br i1 %485, label %487, label %486

486:                                              ; preds = %482
  call void @_ZN4Glip6CoreGL9HdlShaderD1Ev(ptr noundef nonnull align 8 dereferenceable(280) %484) #11
  call void @_ZdlPvm(ptr noundef nonnull %484, i64 noundef 280) #14
  br label %487

487:                                              ; preds = %486, %482
  store ptr null, ptr %483, align 8, !tbaa !11
  %488 = getelementptr inbounds i8, ptr %0, i64 24
  %489 = load ptr, ptr %488, align 8, !tbaa !11
  %490 = icmp eq ptr %489, null
  br i1 %490, label %492, label %491

491:                                              ; preds = %487
  call void @_ZN4Glip6CoreGL9HdlShaderD1Ev(ptr noundef nonnull align 8 dereferenceable(280) %489) #11
  call void @_ZdlPvm(ptr noundef nonnull %489, i64 noundef 280) #14
  br label %492

492:                                              ; preds = %491, %487
  store ptr null, ptr %488, align 8, !tbaa !11
  %493 = getelementptr inbounds i8, ptr %0, i64 32
  %494 = load ptr, ptr %493, align 8, !tbaa !11
  %495 = icmp eq ptr %494, null
  br i1 %495, label %497, label %496

496:                                              ; preds = %492
  call void @_ZN4Glip6CoreGL9HdlShaderD1Ev(ptr noundef nonnull align 8 dereferenceable(280) %494) #11
  call void @_ZdlPvm(ptr noundef nonnull %494, i64 noundef 280) #14
  br label %497

497:                                              ; preds = %496, %492
  store ptr null, ptr %493, align 8, !tbaa !11
  %498 = getelementptr inbounds i8, ptr %0, i64 40
  %499 = load ptr, ptr %498, align 8, !tbaa !11
  %500 = icmp eq ptr %499, null
  br i1 %500, label %502, label %501

501:                                              ; preds = %497
  call void @_ZN4Glip6CoreGL9HdlShaderD1Ev(ptr noundef nonnull align 8 dereferenceable(280) %499) #11
  call void @_ZdlPvm(ptr noundef nonnull %499, i64 noundef 280) #14
  br label %502

502:                                              ; preds = %501, %497
  store ptr null, ptr %498, align 8, !tbaa !11
  %503 = getelementptr inbounds i8, ptr %0, i64 48
  %504 = load ptr, ptr %503, align 8, !tbaa !11
  %505 = icmp eq ptr %504, null
  br i1 %505, label %507, label %506

506:                                              ; preds = %502
  call void @_ZN4Glip6CoreGL9HdlShaderD1Ev(ptr noundef nonnull align 8 dereferenceable(280) %504) #11
  call void @_ZdlPvm(ptr noundef nonnull %504, i64 noundef 280) #14
  br label %507

507:                                              ; preds = %506, %502
  store ptr null, ptr %503, align 8, !tbaa !11
  %508 = load ptr, ptr %70, align 8, !tbaa !23
  %509 = icmp eq ptr %508, null
  br i1 %509, label %511, label %510

510:                                              ; preds = %507
  call void @_ZN4Glip6CoreGL10HdlProgramD1Ev(ptr noundef nonnull align 8 dereferenceable(88) %508) #11
  call void @_ZdlPvm(ptr noundef nonnull %508, i64 noundef 88) #14
  br label %511

511:                                              ; preds = %510, %507
  store ptr null, ptr %70, align 8, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 152, ptr nonnull %40) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %41) #11
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %42) #11
  %512 = load ptr, ptr %0, align 8, !tbaa !5
  %513 = getelementptr i8, ptr %512, i64 -24
  %514 = load i64, ptr %513, align 8
  %515 = getelementptr inbounds i8, ptr %0, i64 %514
  %516 = load ptr, ptr %515, align 8, !tbaa !5
  %517 = getelementptr inbounds i8, ptr %516, i64 16
  %518 = load ptr, ptr %517, align 8
  invoke void %518(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr noundef nonnull align 8 dereferenceable(40) %515)
          to label %519 unwind label %527

519:                                              ; preds = %511
  invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_OS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr noundef nonnull @.str.10, ptr noundef nonnull align 8 dereferenceable(32) %42)
          to label %520 unwind label %529

520:                                              ; preds = %519
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %44) #11
  call void @_ZNSaIcEC2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #11
  invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %43, ptr noundef nonnull @.str.1, ptr noundef nonnull align 1 dereferenceable(1) %44)
          to label %521 unwind label %531

521:                                              ; preds = %520
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #11
  store i32 1, ptr %45, align 4, !tbaa !21
  invoke void @_ZN4Glip9ExceptionC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_iRKNS0_4TypeE(ptr noundef nonnull align 8 dereferenceable(152) %40, ptr noundef nonnull align 8 dereferenceable(32) %41, ptr noundef nonnull %43, i32 noundef 493, ptr noundef nonnull align 4 dereferenceable(4) %45)
          to label %522 unwind label %533

522:                                              ; preds = %521
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #11
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #11
  %523 = invoke noundef nonnull align 8 dereferenceable(152) ptr @_ZN4Glip9ExceptionlsERKS0_(ptr noundef nonnull align 8 dereferenceable(152) %40, ptr noundef nonnull align 8 dereferenceable(152) %478)
          to label %524 unwind label %538

524:                                              ; preds = %522
  %525 = call ptr @__cxa_allocate_exception(i64 152) #11
  invoke void @_ZN4Glip9ExceptionC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(152) %525, ptr noundef nonnull align 8 dereferenceable(152) %40)
          to label %526 unwind label %540

526:                                              ; preds = %524
  invoke void @__cxa_throw(ptr nonnull %525, ptr nonnull @_ZTIN4Glip9ExceptionE, ptr nonnull @_ZN4Glip9ExceptionD1Ev) #12
          to label %565 unwind label %538

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

529:                                              ; preds = %519
  %530 = landingpad { ptr, i32 }
          cleanup
  br label %536

531:                                              ; preds = %520
  %532 = landingpad { ptr, i32 }
          cleanup
  br label %535

533:                                              ; preds = %521
  %534 = landingpad { ptr, i32 }
          cleanup
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %43) #11
  br label %535

535:                                              ; preds = %533, %531
  %.pn118 = phi { ptr, i32 } [ %534, %533 ], [ %532, %531 ]
  call void @_ZNSt15__new_allocatorIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %44) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %44) #11
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %41) #11
  br label %536

536:                                              ; preds = %535, %529
  %.pn118.pn = phi { ptr, i32 } [ %.pn118, %535 ], [ %530, %529 ]
  call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev(ptr noundef nonnull align 8 dereferenceable(32) %42) #11
  br label %537

537:                                              ; preds = %536, %527
  %.pn118.pn.pn = phi { ptr, i32 } [ %.pn118.pn, %536 ], [ %528, %527 ]
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %42) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %41) #11
  br label %543

538:                                              ; preds = %526, %522
  %539 = landingpad { ptr, i32 }
          cleanup
  br label %542

540:                                              ; preds = %524
  %541 = landingpad { ptr, i32 }
          cleanup
  call void @__cxa_free_exception(ptr %525) #11
  br label %542

542:                                              ; preds = %540, %538
  %.pn122 = phi { ptr, i32 } [ %539, %538 ], [ %541, %540 ]
  call void @_ZN4Glip9ExceptionD1Ev(ptr noundef nonnull align 8 dereferenceable(152) %40) #11
  br label %543

543:                                              ; preds = %542, %537
  %.pn122.pn = phi { ptr, i32 } [ %.pn122, %542 ], [ %.pn118.pn.pn, %537 ]
  call void @llvm.lifetime.end.p0(i64 152, ptr nonnull %40) #11
  invoke void @__cxa_end_catch()
          to label %544 unwind label %562

544:                                              ; preds = %543
  %.33 = extractvalue { ptr, i32 } %.pn122.pn, 0
  %.3383 = extractvalue { ptr, i32 } %.pn122.pn, 1
  br label %558

545:                                              ; preds = %472
  %546 = load ptr, ptr %0, align 8, !tbaa !5
  %547 = getelementptr i8, ptr %546, i64 -40
  %548 = load i64, ptr %547, align 8
  %549 = getelementptr inbounds i8, ptr %0, i64 %548
  %550 = invoke noundef nonnull align 8 dereferenceable(128) ptr @_ZNK4Glip12CorePipeline20AbstractFilterLayout16getGeometryModelEv(ptr noundef nonnull align 8 dereferenceable(84) %549)
          to label %551 unwind label %554

551:                                              ; preds = %545
  invoke void @_ZN4Glip12CorePipeline16GeometryInstanceC1ERKNS0_13GeometryModelEj(ptr noundef nonnull align 4 dereferenceable(4) %473, ptr noundef nonnull align 8 dereferenceable(128) %550, i32 noundef 35044)
          to label %552 unwind label %554

552:                                              ; preds = %551
  %553 = getelementptr inbounds i8, ptr %0, i64 64
  store ptr %473, ptr %553, align 8, !tbaa !27
  store i8 0, ptr %78, align 1, !tbaa !20
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #11
  ret void

554:                                              ; preds = %551, %545
  %555 = landingpad { ptr, i32 }
          cleanup
  %556 = extractvalue { ptr, i32 } %555, 0
  %557 = extractvalue { ptr, i32 } %555, 1
  call void @_ZdlPvm(ptr noundef nonnull %473, i64 noundef 4) #14
  br label %558

558:                                              ; preds = %210, %211, %147, %148, %554, %544, %474, %392, %322, %230, %88
  %.3484 = phi i32 [ %.959163, %148 ], [ %.959, %147 ], [ %.1969175, %211 ], [ %.1969, %210 ], [ %.2777, %392 ], [ %.2272, %322 ], [ %.3383, %544 ], [ %.2878, %474 ], [ %557, %554 ], [ %91, %88 ], [ %233, %230 ]
  %.34 = phi ptr [ %.9162, %148 ], [ %.9, %147 ], [ %.19174, %211 ], [ %.19, %210 ], [ %.27, %392 ], [ %.22, %322 ], [ %.33, %544 ], [ %.28, %474 ], [ %556, %554 ], [ %90, %88 ], [ %232, %230 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #11
  br label %559

559:                                              ; preds = %558, %84
  %.3585 = phi i32 [ %.3484, %558 ], [ %87, %84 ]
  %.35 = phi ptr [ %.34, %558 ], [ %86, %84 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #11
  call void @_ZNSt6vectorIPN4Glip6CoreGL10HdlTextureESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %71) #11
  %560 = insertvalue { ptr, i32 } poison, ptr %.35, 0
  %561 = insertvalue { ptr, i32 } %560, i32 %.3585, 1
  resume { ptr, i32 } %561

562:                                              ; preds = %543, %391
  %563 = landingpad { ptr, i32 }
          catch ptr null
  %564 = extractvalue { ptr, i32 } %563, 0
  call void @__clang_call_terminate(ptr %564) #15
  unreachable

565:                                              ; preds = %526, %374, %182, %119
  unreachable
}

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

declare noundef i32 @_ZN4Glip6CoreGL10HdlTexture16getMaxImageUnitsEv() local_unnamed_addr #6

declare noundef i32 @_ZN4Glip6CoreGL6HdlFBO25getMaximumColorAttachmentEv() local_unnamed_addr #6

declare noundef i32 @_ZNK4Glip12CorePipeline23AbstractComponentLayout15getNumInputPortEv(ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #6

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

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

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

declare noundef i32 @_ZNK4Glip12CorePipeline23AbstractComponentLayout16getNumOutputPortEv(ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #6

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

declare void @_ZN4Glip6CoreGL10HdlProgramC1Ev(ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #6

declare void @_ZN4Glip6CoreGL9HdlShaderC1EjRKNS0_12ShaderSourceE(ptr noundef nonnull align 8 dereferenceable(280), i32 noundef, ptr noundef nonnull align 8 dereferenceable(272)) unnamed_addr #6

declare void @_ZN4Glip6CoreGL10HdlProgram12updateShaderERKNS0_9HdlShaderEb(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(280), i1 noundef zeroext) local_unnamed_addr #6

declare void @_ZN4Glip6CoreGL10HdlProgram4linkEv(ptr noundef nonnull align 8 dereferenceable(88)) local_unnamed_addr #6

; Function Attrs: nounwind
declare void @_ZN4Glip6CoreGL9HdlShaderD1Ev(ptr noundef nonnull align 8 dereferenceable(280)) unnamed_addr #7

; Function Attrs: nounwind
declare void @_ZN4Glip6CoreGL10HdlProgramD1Ev(ptr noundef nonnull align 8 dereferenceable(88)) unnamed_addr #7

declare noundef nonnull align 8 dereferenceable(152) ptr @_ZN4Glip9ExceptionlsERKS0_(ptr noundef nonnull align 8 dereferenceable(152), ptr noundef nonnull align 8 dereferenceable(152)) local_unnamed_addr #6

declare noundef zeroext i1 @_ZNK4Glip6CoreGL12ShaderSource21requiresCompatibilityEv(ptr noundef nonnull align 8 dereferenceable(272)) local_unnamed_addr #6

declare void @_ZN4Glip6CoreGL10HdlProgram19setFragmentLocationERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEi(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef) local_unnamed_addr #6

declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNK4Glip12CorePipeline23AbstractComponentLayout17getOutputPortNameB5cxx11Ei(ptr noundef nonnull align 8 dereferenceable(88), i32 noundef) local_unnamed_addr #6

declare void @_ZN4Glip6CoreGL10HdlProgram6setVarERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEjiiii(ptr noundef nonnull align 8 dereferenceable(88), ptr noundef nonnull align 8 dereferenceable(32), i32 noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #6

declare noundef nonnull align 8 dereferenceable(32) ptr @_ZNK4Glip12CorePipeline23AbstractComponentLayout16getInputPortNameB5cxx11Ei(ptr noundef nonnull align 8 dereferenceable(88), i32 noundef) local_unnamed_addr #6

declare void @_ZN4Glip6CoreGL10HdlProgram11stopProgramEv() local_unnamed_addr #6

declare void @_ZN4Glip12CorePipeline16GeometryInstanceC1ERKNS0_13GeometryModelEj(ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(128), i32 noundef) unnamed_addr #6

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

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

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write)
declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #10

attributes #0 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { nobuiltin allocsize(0) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nobuiltin nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { inlinehint mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { mustprogress nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { mustprogress uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { "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 "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nofree nosync nounwind memory(none) }
attributes #9 = { noinline noreturn nounwind uwtable "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 #10 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #11 = { nounwind }
attributes #12 = { noreturn }
attributes #13 = { builtin allocsize(0) }
attributes #14 = { builtin nounwind }
attributes #15 = { noreturn 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 = !{!"vtable pointer", !7, i64 0}
!7 = !{!"Simple C++ TBAA"}
!8 = !{!9, !9, i64 0}
!9 = !{!"int", !10, i64 0}
!10 = !{!"omnipotent char", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"any pointer", !10, i64 0}
!13 = !{!14, !15, i64 72}
!14 = !{!"_ZTSN4Glip12CorePipeline6FilterE", !10, i64 8, !12, i64 56, !12, i64 64, !15, i64 72, !15, i64 73, !16, i64 80}
!15 = !{!"bool", !10, i64 0}
!16 = !{!"_ZTSSt6vectorIPN4Glip6CoreGL10HdlTextureESaIS3_EE", !17, i64 0}
!17 = !{!"_ZTSSt12_Vector_baseIPN4Glip6CoreGL10HdlTextureESaIS3_EE", !18, i64 0}
!18 = !{!"_ZTSNSt12_Vector_baseIPN4Glip6CoreGL10HdlTextureESaIS3_EE12_Vector_implE", !19, i64 0}
!19 = !{!"_ZTSNSt12_Vector_baseIPN4Glip6CoreGL10HdlTextureESaIS3_EE17_Vector_impl_dataE", !12, i64 0, !12, i64 8, !12, i64 16}
!20 = !{!14, !15, i64 73}
!21 = !{!22, !22, i64 0}
!22 = !{!"_ZTSN4Glip9Exception4TypeE", !10, i64 0}
!23 = !{!14, !12, i64 56}
!24 = distinct !{!24, !25}
!25 = !{!"llvm.loop.mustprogress"}
!26 = distinct !{!26, !25}
!27 = !{!14, !12, i64 64}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopIdiomRecognizePass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,PostOrderFunctionAttrsPass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass